CreateDIBitmap创建Black& White图像

时间:2011-07-12 21:20:35

标签: winapi dib

对于了解CreateDIBitmap疑难解答的人

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

1 个答案:

答案 0 :(得分:3)

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

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

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