首页 理论教育VC++MFC视频教程:图像透明技术实战

VC++MFC视频教程:图像透明技术实战

【摘要】:在显示透明图片时,必须去除透明色区域的像素只显示非透明色区域的像素,形成不规则边缘的图像。创建一个工程名为“Trans”的对话框程序,用于演示透明图片的显示方法。3)把本章第1节的MemDC.h文件复制到Trans工程目录中,通过文件视图中的“Add Files to Project”命令添加到编译列表中,如图8-8所示。图8-9 选择要导入到工程中的文件图8-10 将MemDC.h文件添加到编译列表6)在文件列表中双击MemDC.h文件,增加显示透明位图的代码。

棋盘上的可以移动的棋子或者游戏背景上运动的人物,这些图形的边缘都不是矩形形状的。在显示透明图片时,必须去除透明色区域的像素只显示非透明色区域的像素,形成不规则边缘的图像。有背景色的透明图片素材,一般由公司里的美工提供或者在网上搜索来获取。

创建一个工程名为“Trans”的对话框程序,用于演示透明图片的显示方法。

1)复制一张带透明色的位图文件到工程目录的res目录下,如图8-6所示。

2)在资源视图中导入该位图资源,如图8-7所示。

3)把本章第1节的MemDC.h文件复制到Trans工程目录中,通过文件视图中的“Add Files to Project”命令添加到编译列表中,如图8-8所示。

978-7-111-46378-8-Chapter08-12.jpg

图8-6 透明图片素材(背景色是紫色)

978-7-111-46378-8-Chapter08-13.jpg

图8-7 导入的位图资源

978-7-111-46378-8-Chapter08-14.jpg

图8-8 添加文件到工程中

4)选中工程目录下的MemDC.h文件,单击“OK”按钮把文件导入到编译列表中,如图8-9所示。

5)执行File→Save Workspace命令保存编译列表的变动,如图8-10所示。

978-7-111-46378-8-Chapter08-15.jpg

图8-9 选择要导入到工程中的文件(www.chuimin.cn)

978-7-111-46378-8-Chapter08-16.jpg

图8-10 将MemDC.h文件添加到编译列表

6)在文件列表中双击MemDC.h文件,增加显示透明位图的代码。

978-7-111-46378-8-Chapter08-17.jpg

978-7-111-46378-8-Chapter08-18.jpg

978-7-111-46378-8-Chapter08-19.jpg

7)在主对话框类的头文件中,添加一个CMemDC类型的成员变量

978-7-111-46378-8-Chapter08-20.jpg

8)修改WM_PAINT消息映射函数。

978-7-111-46378-8-Chapter08-21.jpg

9)编译并运行,测试代码,如图8-11所示。

978-7-111-46378-8-Chapter08-22.jpg

图8-11 查看运行结果

第一幅是带透明色一起原图输出,第二幅是去掉了透明色后的图片效果,最后是拉伸的透明图片。透明处理代码难以记忆,可以长期保存MemDC.h文件,在需要时只要导入该文件即可。