在WINDOWS系统中实现“透明位图”  

作  者:杜经农 

出  处:《电脑》1998年第6期80-81,共2页Computer Magazine

摘  要:在多媒体编程中,经常需要实现图像的叠加,在将前景位图叠加到背景位图上时,通常需要透明屏蔽,即围绕轮廓显示前景中所需图像,而不是在背景上显示出一个矩形的前景位图块。例如,要编制一个导弹打飞机的游戏,我们希望在背景上显示飞机轮廓,透过轮廓的间隙能看见背景图,但高级语言的绘图函数只能显示矩形位图块,必须自己编程实现透明位图。实现透明位图有多种办法,在DOS中,通常是对具体硬件编程,以实现直接写屏。在WINDOWS中,我们不能针对具体硬件编程,因此,需要人工制作相应的屏蔽位图,与需要透明显示的位图进行光栅操作,进行数次叠加后以达到相应效果。这种方法的缺点在于编程复杂,绘图效率不高,而且还需使用图像编辑软件来处理背景位图。使用这种办法编制的含动画的程序,在硬件配置差一些的机器上,执行时就不够流畅,这在WINDOWS系统的交互式动画编程中,是一个令人头痛的问题。本人在VC++编程中,为提高绘图速度,减小程序对硬件的要求,尝试了一种在WINDOWS中直接写屏的办法,得到了令人满意的效果,当然,这里的直接写屏并非是直接对硬件编程,而是通过在屏幕上逐点绘像素来实现透明位图。这种方法编程简单,而且执行速度相当快,现介绍如下。我们使用VC++5.0编程。

关 键 词:WINDOWS 透明位图 C语言 程序设计 

分 类 号:TP316[自动化与计算机技术—计算机软件与理论] TP311[自动化与计算机技术—计算机科学与技术]

 

参考文献:

正在载入数据...

 

二级参考文献:

正在载入数据...

 

耦合文献:

正在载入数据...

 

引证文献:

正在载入数据...

 

二级引证文献:

正在载入数据...

 

同被引文献:

正在载入数据...

 

相关期刊文献:

正在载入数据...

相关的主题
相关的作者对象
相关的机构对象