实用第一 智慧密集
L}8一 Z C++Builder图像特技显示十例
1 、+)
擅 耍 本文介绍 了在 WIN98下用 C++Builder鳊程 实现 图彤 图像的特技显示的原理和方法,并
对基本的十种特技 卖饲进行 了介绍。通过对这十种显示特技的组合及变化.可以得到各种
变化 效果。
关键词 £+上B
—
uil
—
der,
随着 MPC (多媒体计算机)和多媒体技术的普
及 ,图形图像处理在计算机的应用中所 占的比重也
越来越 大。在 目前 多如牛毛的学 习、娱乐类软件
中,各种图像显示特技的应用也非常普遍。凭着 图
形 的交错 、推拉 、百叶窗 、十字扩散等诸多的显示
特技 ,使这类软件 的人机界面显得非常活泼生动。
-本文针对这类图形显示特技在 C++ Builder中的实
现进行了探讨 ,讲解 了实现的基本原理并给 出了十
种显示特技的源程序 ,希望与广大的CFAN们进行
交流。根据本文给 出的十种显示特技 ,然后进行简
单的变化和相应的组合即可得到变化无穷 的显示效
果 ,一定会 给你 的程序增 色不少 ,请大 家笑纳 。
(文 中程序均已调试通过 ,软件平 台为 PWIN98、
C++ Builder 3.0,硬 件环 境 为 K6—2 300、Tri-
dent9685显卡。)
一
、
基本原理
在 C+4-Builder中,如果要在窗体中显示一幅
图形非常简单 ,只要在 Form中放置一个 凰m嚣e组
件 ,然后在 Object b mt0r中设置 11m姆e的 picture
属性 ,选择任何 .ICO、.B船 、.EMF威 .WMF文
件,所选 图形兢显示在窗体 中了。但 这种方法只是
将图形直接显示在窗体中,投有任何技巧效果。为
了使程序中的图形显示效果别具一格,.可以参照以
下步骤来加以实现:
●在程序中定义一个 Tim ̄g*对象 Impel(不是
在窗体上拖放一个 控俘 ),把要显示 的底 图通过
IaadFtmaFilo方法装人到 ⅡⅢ学 组件中。
●在程序 中戗建一新的 Timage位圈对 象 Ira-
^曾e2,其尺寸跟第一步中的Timage对象中的图形一
样。同样用 LoadFrmmCile方法装人要显示 的位图 ,
也就是说 ,把图形 内容从磁盘载人内存中 ,作为图
形缓存。
●利 用 lmagel的画布 (Canvas)对象 的 Copy-
Rect方法 ,使用各种技巧,动态形成位图文件内容
(存 于 Image1中 ),然后在 窗体 中显示 位图 Im-
agel。
大家从以上的步骤 中可 以看 出 ,本文的重点在
于 CopyRect这个函数 下面给出它的使用语法.免
得各位读者在 C++ Builder的英文中爬行。Copy.
Re*t函数 原型 :void__.fastc ̄dl CopyRect(const win-
dows::11 ct & Dest, TCanvas ★ Canvas ,  ̄Oll ̄t
Windows::TBUct&Source)。其作用是将一个画布的
矩形 区域 (sD圳一 )拷 贝到另一个画布的矩形 区域
(Dest),其 中的 Canvas参数标识含有 Source矩形
区域 的画布。
在进人 C++ Builder之前 ,最好准备两幅 同
样大小的位图并放于程序目录下 (一幅是背景,即
程序中的 42.bmp;另一幅是要显示的位图.即文中
的41.bmp。),如果两幅图的大小不一样。本文中
的某些特效可能有不正常的效果 (特效? !)。进
人 ++ Builder之后 ,在窗体上画几个按钮 .然
后双击-之进人其 CLICK事件代码的编辑中,输人下
面相应的程序段即可
二、 第一倒:上拉
第一倒的效果 是将要显示 的图形由上 、下、
左、右各方 向拉进屏幕内相应 区域显示 ,同时将屏
幕上 原来 的图形覆盖。下面以由下 向上的上拉效果
为倒进行说明。首先 ,将放在 imase2中的图形的第
一
行像素拷贝至动态位图 image1的最后~行并在窗
体中显示它,然后将缓存图形的前两行像素 ,依序
\ ¨
维普资讯 http://www.cqvip.com
评论3