如何把两幅位图融合?

来源:百度知道 编辑:UC知道 时间:2024/05/05 13:13:36
我是用MFC的单文档做的。先显示一幅背景,然后在上面再加一幅位图,但第二幅位图上的白色部分我是不想要的,要怎样做?
那如何得到屏蔽图?

呵呵,这不是使用VC6.0开发视频游戏时经常用到的技巧吗?
我没学过VC的MFC架构,倒是了解一些Windows API架构,当然知道的还很浅显。在这里要用到贴图时的“透明”技术。简单说,分以下两步:
1. 屏蔽图与背景图做“AND”运算
2. 前景图与背景图做“OR”运算
由于没法把图片给你看,所以只能用语言解释了。
所谓屏蔽图和前景图,就是有两张图片,上边画的内容完全一样。举个例子:我在一幅图上,画了个红色的圆(已用红色填充),那么前景图就是:圆的内部全都是红色,而圆轮廓的外部,一直到这幅图的边缘都是黑色!屏蔽图就是:圆的内部全都是黑色,而圆轮廓的外部,一直到这幅图的边缘都是白色!
然后,楼主可以自己想想,按照我说的做那两种运算,会出现什么情景?如果你对“按位与”和“按位或”足够了解的画,你会发现我们就能顺利的将这个红色的圆贴到背景图上(这个概念不用我多说吧?),而圆轮廓的外部,一直到那副图的边缘的颜色,都不会被贴上!

回补充:
当然是自己搞定呗。
事实上,可以将一幅图从中间分为两部分,左边是前景图,右边是屏蔽图,这样可以减少一次贴图操作,转而执行一次“裁剪”来代替。
自己贴图要准备好位图资源才行的。前景图和屏蔽图都是不可少的!所以这要自己解决了。

另外你愿意的话可以把那副位图发送至:
mijiaps2@163.com
我看看啥样。