1

我正在尝试使用 GDI+ DrawImage 在 CImage 对象上绘制一些位图。生成的 CImage 位图似乎被 alpha 预乘,但我在 msdn 文档中找不到任何提及。

当我在 CImage HDC 上使用 DrawImage 进行绘制时会发生什么?

4

1 回答 1

0

是的,结果将被预乘,因为AlphaBlend函数需要预乘的 alpha。这在结构的AlphaFormat成员的文档中有所说明BLENDFUNCTION

AC_SRC_ALPHA - 当位图具有 Alpha 通道(即每像素 Alpha)时设置此标志。请注意,API 使用预乘 Alpha,这意味着位图中的红色、绿色和蓝色通道值必须与 Alpha 通道值进行预乘。例如,如果 alpha 通道值为 x,则在调用之前,红色、绿色和蓝色通道必须乘以 x 并除以 0xff。

参考: http: //msdn.microsoft.com/en-us/library/dd183393 (v=vs.85).aspx

于 2011-05-01T21:20:20.210 回答