【发布时间】:2011-10-08 00:55:58
【问题描述】:
问:我收到了一个位图的数据缓冲区 + BITMAPINFO 描述,每像素 32 位。 接收器的 DC 仅支持 16 位颜色。
当我创建 DIB 对象时,我传递了标头 + 位,但 DIB 将显示错误... 如何制作兼容接收机的DC Bitmap,基于32的?
但应该不是那么清楚......
换句话说:例如,如何将 DIB 从 32 转换为 16?
抱歉,无法更好地解释。
【问题讨论】:
问:我收到了一个位图的数据缓冲区 + BITMAPINFO 描述,每像素 32 位。 接收器的 DC 仅支持 16 位颜色。
当我创建 DIB 对象时,我传递了标头 + 位,但 DIB 将显示错误... 如何制作兼容接收机的DC Bitmap,基于32的?
但应该不是那么清楚......
换句话说:例如,如何将 DIB 从 32 转换为 16?
抱歉,无法更好地解释。
【问题讨论】:
您可以使用CreateDIBitmap 函数将DIB 转换为适合DC 的DDB。它应该应用必要的转换。如果您只想显示 DIB,请改用SetDIBitsToDevice。
【讨论】: