我正在尝试使用GDI + DrawImage在CImage对象上绘制一些位图。由此产生的CImage位图似乎被alpha预乘,但我在msdn文档中找不到任何提及。
当我在CImage HDC上使用DrawImage绘制时会发生什么?
答案 0 :(得分:0)
是的,结果将被预乘,因为AlphaBlend函数需要预乘的alphas。这在BLENDFUNCTION
结构的文档 AlphaFormat 成员中注明:
AC_SRC_ALPHA - 当位图具有Alpha通道(即每像素alpha)时,将设置此标志。请注意,API使用预乘alpha,这意味着位图中的红色,绿色和蓝色通道值必须与alpha通道值预乘。例如,如果alpha通道值为x,则红色,绿色和蓝色通道必须乘以x并在调用之前除以0xff。
参考:http://msdn.microsoft.com/en-us/library/dd183393(v=vs.85).aspx