0

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

无论如何,它在内置单色位图上工作。除了决议,我所有的一切都在工作。我得到设备上下文,获取兼容的设备上下文,构建位图,绘制我需要的东西(黑色/白色),并且可以保存。这一切都很好。但是,我不知道如何设置位图的分辨率。

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

4

3 回答 3

1

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

于 2009-03-02T16:05:08.110 回答
1

Are you absolutely sure? The description of the behavior you observe sounds fishy to me and I would suspect the code that you're using to write your bitmaps or your code that reads them back in.

于 2009-03-02T15:21:18.183 回答
0

感谢您的输入,但我也会研究 biXPelsPerMeter 和 biYPels ...。我会仔细检查格式,以及设置的内容......如果是这样,你可能已经对我的问题有了第二组眼睛(头脑)。

谢谢

于 2009-03-03T01:08:24.450 回答