关于透明位图

  • Post author:
  • Post category:其他




透明位图网上说了很多,看了半天还是不懂,估计就是因为

1.图的颜色取反是个啥意思?

2.SetBkColor是设置字体背景颜色的,用在图上,又是个啥意思?

反正搞了那么多,最后就总结成最精华的5步方法:

1.SetBkColor(原DC, RGB(原图白色,这里就是黑色)),// setbkcolor,作用应该是只会对原图的背景单色产生效果

2.BitBlt(掩DC, 原DC, SRCINVERT/SRCPAINT/SRCCOPY这三种光栅模式都可以)// 将原DC背景区域作画到掩DC,效果颜色是与原图背景色相反的白色// 注:从第二步开始产生透明背景效果

3.BitBlt(目标DC, 原DC, SRCINVERT)// 由1产生的效果,原图单色区域会与目标DC是相同的.

4.BitBlt(目标DC, 掩DC, SRCAND)// 由1,2产生的效果,产生掩DC本色(应该是黑色)透明图

5.BitBlt(目标DC, 原DC, SRVINVERT)// 将原图做到第四步的图,只会选取不同于上图区域的区域取原图作画.

估计看了更不明白,呵呵,反正我也没搞明白.附上部分代码,可以自己试验下.

全局变量:

HDC himage2DC;

HDC hmaskDC;

HDC himageDC;

HDC hmask2DC;

HDC himage3DC;

HDC hmask3DC;

HBITMAP himage2bitmap;

H



版权声明:本文为diffway原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。