C++ 计算单色BMP的BitMapInfo头双压缩值

C++ 计算单色BMP的BitMapInfo头双压缩值,c++,windows,winapi,bitmap,C++,Windows,Winapi,Bitmap,希望有人能给出答案,而且不太复杂。我正在研究一个C++ DLL(没有C,或.NET,完全静态DLL)。 不管怎样,它是建立在单色位图上的。除了决议外,我所有的工作都在进行中。我获取设备上下文,获取兼容的设备上下文,构建位图,绘制所需内容(黑色/白色),并可以保存。这一切都很好。但是,我不知道如何设置位图的分辨率 在C#下从另一个实用程序进行测试时,我可以创建位图并设置分辨率。在这样做的过程中,我运行了一个例程来生成相同的文件内容,其中的分辨率参数为1到300。除了“双压缩”DWORD属性中的值外

希望有人能给出答案,而且不太复杂。我正在研究一个C++ DLL(没有C,或.NET,完全静态DLL)。 不管怎样,它是建立在单色位图上的。除了决议外,我所有的工作都在进行中。我获取设备上下文,获取兼容的设备上下文,构建位图,绘制所需内容(黑色/白色),并可以保存。这一切都很好。但是,我不知道如何设置位图的分辨率


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

您绝对确定吗?对您观察到的行为的描述听起来很可疑,我会怀疑您用来编写位图的代码或读入位图的代码。

您确定不想设置
biXPelsPerMeter
biYPelsPerMeter
?这两个字段告诉您X和Y方向上每米有多少像素,您可以使用这两个字段设置DPI
biCompression
只处理位图的压缩类型,例如RLE、JPG、PNG等。

感谢您的输入,但我将研究biXPelsPerMeter和biYPels。。。也我会仔细检查格式,以及设置的内容。。。如果是这样的话,你可能已经在我的问题上用第二双眼睛(思想)击中了它

谢谢