• 做一个幸福的人,读书,旅行,努力工作,关心身体和心情。
  • 不管有没有人爱,也要努力做一个可爱的人。不埋怨谁,不嘲笑谁,也不羡慕谁,阳光下灿烂,风雨中奔跑,做自己的梦,走自己的路。

Windows编程笔记之(三)——使用BitBlt透明贴图

Win32编程 lcq 5年前 (2013-08-19) 529次浏览 0个评论

在游戏的开发中,所有的图片都是长方形的,为了将图片不需要的去掉,往往背景色使用一种特殊的颜色,我们游戏开发中使用的洋红色。下面使用BitBlt过滤掉不需要的背景色。

下面两幅图是需要贴的图片。一张背景色,一张动物的图片。

代码如下:

运行结果如下:

稍微解释一下

BitBlt(hdc, 280, 320, 85, 99, mdc, 85, 0, SRCAND); // 将屏蔽图与背景图做"AND"运算。

BitBlt(hdc, 280, 320, 85, 99, mdc, 0,  0, SRCPAINT); // 将前景图与背景图做"OR"运算。

将屏蔽图跟背景色做与运算,由于屏蔽图的背景是白色的,动物是黑色的。白色的RGB(255, 255, 255)。黑色的RGB为(0, 0, 0)所以白色跟背景图进行与运算,留下背景图,黑色跟背景图进行与运算,留下纯黑色的动物。接下来,由于前景图的的背景是黑色的,动物是各种颜色的。黑色跟背景图进行或运算,留下背景图。其他颜色跟背景图(该块已经变成了纯黑色的)进行与运算,留下其他色。这样。一幅透明贴图就贴好了。


乐趣公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Windows编程笔记之(三)——使用BitBlt透明贴图
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址