计算单色BMP的BITMAPINFOHEADER biCompression值

时间:2009-03-02 15:05:46

标签: c++ windows winapi bitmap

希望有人有答案,并不是太复杂了。我正在研究一个C ++ DLL(没有C#或.Net,完全静态的DLL)。

无论如何,它对构建单色位图的担忧。除了解决方案之外,我所有的工作都在工作。我得到设备上下文,获取兼容设备上下文,构建位图,绘制我需要的(黑/白),并可以保存。这一切都很好。但是,我无法弄清楚如何设置位图的分辨率。

在C#下从另一个实用程序进行一些测试时,我可以创建一个位图并设置分辨率。在这样做的过程中,我运行了一个例程来生成相同的文件内容,参数从1到300用于分辨率。对于“biCompression”DWORD属性中的值,每个图像的出现完全相同。默认情况下屏幕分辨率为96x96,但对于300x300的打印机,甚至一些分辨率为203x203的打印机,需要明显更改。

3 个答案:

答案 0 :(得分:1)

您确定不想设置biXPelsPerMeterbiYPelsPerMeter吗?这两个字段告诉您X和Y中每米有多少像素,您可以使用它来设置DPI。 biCompression仅处理位图的压缩类型,例如RLE,JPG,PNG等。

答案 1 :(得分:0)

你绝对确定吗?你观察到的行为的描述对我来说听起来很可疑,我怀疑你用来编写位图的代码或者你的代码将它们读回来。

答案 2 :(得分:0)

感谢您提供输入,但我也会查看biXPelsPerMeter和biYPels。我会仔细检查格式,以及设置的内容......如果是这样,你可能会在我的问题上用第二组眼睛(思想)来击中它。

由于