【发布时间】:2012-11-08 23:43:52
【问题描述】:
我正在对应用程序进行低级别扫描,我已经不是很舒服了:)
无论如何,我正试图从我得到的数字中弄清楚。
我们开始吧:
- 以 200 DPI、黑白扫描 Letter 大小的文档
- 分辨率高达 1700x2200
- 我计算出 1700x2200 = 3740000 位或 467500 字节
- 当我得到 BITMAPINFOHEADER 时,它显示 biSizeImage = 475200。为什么?
- 我用 BITMAP 返回字节数组的代码 sn-p 返回 475248 个字节,多出 48 个字节。但是biSize说的是40,所以如果header是40,那为什么图片数据前面要48个字节呢?
基本上,我不明白为什么在 BITMAPHEADER 中计算的 467500 和 475200 之间存在差异?
我也不明白为什么标题说它是 40 字节,但实际上它是 48?我只是猜测颜色信息是 8 个字节?因为图像是 2 色 (B/W) - 每种颜色使用 4 个字节?
编辑
这是信息:
我认为我明白了。当扫描线保存在内存中时,它必须是 4 个字节的包。 所以,根据我的计算,1700 位是 212.5 字节,根据我所看到的 - 它使用 216 字节。所以,这有点道理。
【问题讨论】:
-
将图像发布到文件共享服务,以便每个人都可以检查您的假设。
标签: .net winapi bitmap scanning twain