delphi编程的图像显示技巧

delphi编程的图像显示技巧

ID:15403733

大小:32.50 KB

页数:9页

时间:2018-08-03

delphi编程的图像显示技巧_第1页
delphi编程的图像显示技巧_第2页
delphi编程的图像显示技巧_第3页
delphi编程的图像显示技巧_第4页
delphi编程的图像显示技巧_第5页
资源描述:

《delphi编程的图像显示技巧》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Delphi编程的图像显示技巧Delphi编程的图像显示技巧来源:编程爱好者网站作者:编程爱好者网站发布时间:2008-04-0217:02:17域名注册域名惊喜价格cn域名1元注册com域名39.9元虚拟主机主机按月支付,低至19元/月超大流量,可开子站点VPS主机特惠VPS168元/月,4-8M独享带宽保证独立操作系统,无限开站点发软件时经常需要加入各种图像的特效显示效果,这样能使画面变得更为生动活泼,增加软件的趣味性,使软件更加受欢迎。本文将探讨怎么在Delphi编程中实现移动、交错、瀑布状、百叶窗和积木堆叠等各种图像特效显示效果。基

2、本原理在Delphi中,实现图像的显示是非常简单的,我们只要在Form中定义一个TImage组件,设置其picture属性,然后选择所有有效的.ICO、.BMP、.EMF或.WMF文件,进行载入,所选文件就会显示在TImage组件中。但这只是直接将图像显示在窗体中,毫无技巧可言。为了使图像显示具有特别效果,我们能按下列步骤实现:1.定义一个TImage组件,把要显示的图像先装入到TImage组件中,作为图像缓存;2.创建一新的位图对象,其尺寸跟TImage组件中的图像相同;3.利用画布(Canvas)的CopyRect功能(将一个画布的矩形

3、区域拷贝到另一个画布的矩形区域),使用技巧,动态形成位图文件内容,然后在窗体中显示位图。实现方法首先在窗体上定义一个Image控件Image1,载入一幅图像(注意将其AutoSize设为True,Visible设为False),再定义6个按钮控件,分别设置Caption为“推拉”、“垂直交错”、“水平交错”、“瀑布”、“百叶窗”、“积木”,图像特效的编程原理和按钮的Click程式分别如下。1.推拉效果将要显示的图像由上、下、左、右方向拉进屏幕内显示,同时将屏幕上原来的旧图覆盖掉,此种效果可分为四种:上拉、下拉、左拉和右拉,但原理都差不多,笔

4、者程式以上拉效果为例。>原理:首先将放在缓存中图像的第一条水平线,搬移至要显示的位图的最后一条,接着再将缓存中图像的前两条水平线,按顺序搬移至要显示位图的最后两条水平线,然后搬移前三条、前四条?……?直到全部图像数据搬完为止。在搬移的过程中即可看到显示的位图由下而上浮起,而达到上拉的效果。>程式算法如下:procedureTForm1.Button1Click(Sender:TObject);varnewbmp:TBitmap;i,bmpheight,bmpwidth:integer;beginnewbmp:=TBitmap.Create;

5、newbmp.Width:=image1.Width;newbmp.Height:=image1.Height;bmpheight:=image1.Height;bmpwidth:=image1.Width;fori:=0tobmpheightdobeginnewbmp.Canvas.CopyRect(Rect(0,bmpheight-i,bmpwidth,bmpheight),image1.Canvas,Rect(0,0,bmpwidth,i));form1.Canvas.Draw(120,100,newbmp);end;newbmp.f

6、ree;end;2.垂直交错效果>原理:将要显示的图像分成两部分,奇数条扫描线由上往下搬移,偶数条扫描线的部分则由下往上搬移,而且两者同时进行。从屏幕上便可看到分别由上下两端出现的较淡图像向屏幕中心移动,直到完全清晰为止。>程式算法如下:procedureTForm1.Button4Click(Sender:TObject);varnewbmp:TBitmap;i,j,bmpheight,bmpwidth:integer;beginnewbmp:=TBitmap.Create;newbmp.Width:=image1.Width;newbm

7、p.Height:=image1.Height;bmpheight:=image1.Height;bmpwidth:=image1.Width;i:=0;whilei<=bmpheightdobeginj:=i;whilej>0dobeginnewbmp.Canvas.CopyRect(Rect(0,j-1,bmpwidth,j),image1.Canvas,Rect(0,bmpheight-i+j-1,bmpwidth,bmpheight-i+j));newbmp.Canvas.CopyRect(Rect(0,bmpheight-j,bm

8、pwidth,bmpheight-j+1),image1.Canvas,Rect(0,i-j,bmpwidth,i-j+1));j:=j-1;end;form1.Canvas.D

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。