希望有人能给出答案,而且不会太复杂。我正在处理 C++ dll(没有 C# 或 .Net,完全静态的 DLL)。
总之,它是构建单色位图的。除了决议,我所有的都在工作。我获得了设备上下文、获取兼容的设备上下文、构建位图、绘制我需要的内容(黑色/白色),然后可以保存。这一切都很好。但是,我不知道如何设置位图的分辨率。
在 C# 下从另一个实用程序进行一些测试时,我可以创建一个位图并设置分辨率。为此,我运行了一个例程来生成相同的文件内容,分辨率的参数从 1 到 300。除了“biCompression”DWORD 属性中的值外,每个图像都完全相同。默认是 96x96 的屏幕分辨率,但对于 300x300 的打印机,甚至一些分辨率为 203x203 的打印机,需要进行明显更改。
最佳答案
你确定吗?对您观察到的行为的描述对我来说听起来很可疑,我会怀疑您用来编写位图的代码或将它们读回的代码。
关于c++ - 计算单色 BMP 的 BITMAPINFOHEADER biCompression 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/602663/