0

对于知道 CreateDIBitmap 故障排除的人

当我创建它时,传递所有希望正确的参数,我通过传递数据数组(位数组)创建它。该数组取自同一个位图(想法是创建一个新副本;出于测试目的)。但创建后(它返回正确的句柄),位图是正确的,但调色板是黑白的。没有颜色。为什么?谁知道?

4

1 回答 1

4

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

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

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

于 2011-07-12T22:37:47.080 回答