CreateDIBitmap 创建黑白图像



对于知道CreateDIBitmap故障排除的人

当我创建它,传递所有参数希望正确,我创建它与传递数据数组(位数组)。这个数组取自同一个位图(想法是创建一个新的副本;用于测试目的)。但是在创建之后(它返回正确的句柄),位图是正确的,但是调色板是B&W。没有颜色。为什么?谁知道呢?

你的第一条评论是问题的关键。您正在使用通过CreateCompatibleDC()获得的内存设备上下文,并且在内存dc中选择的默认位图是单色的(每像素1位)。

CreateDIBitmap()使用该设备上下文来确定它创建的DIB的位深度,因此您最终获得单色DIB。

您可以使用CreateDIBSection()来提供您自己的位深度,但最简单的解决方案可能是将hdcScreen传递给CreateDIBitmap()而不是compatibleDC

最新更新