实例16 图像的特效显示

实例16 图像的特效显示 2009年10月13日  第2章 图形图像处理实例   实例16 图像的显示   在Windows处理图像的API函数中,Bitblt()函数是非常重要而且是常用的函数之一。运用这个函数,可以实现图像的旋转和动态显示等效果。如果想在图像处理上有所突破,也必须熟练掌握Bitblt()函数。本实例实现的功能是以门帘效果来显示一幅BMP图像   向窗体上添加一个TImage、一个OpenPictureDialog、一个TPaintBox和一个TButton,TImage充当原图片显示的载体,TPaintBox用来显示图像的。添加后的窗体如图所示。          在显示图像的过程中,如果把原始图像分成几个部分,对每一个部分都逐步放大其显示范围以接近各部分图像的宽度,那么运行时可实现门帘式的显示效果。改变循环语句的步长或者改变Sleep()函数中的参数就可以改变程序运行的时间。   门帘效果的实现代码如下:   unit Unit1;   interface   uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs, StdCtrls, ExtCtrls, ExtDlgs;   type   TForm1 = class(TForm)   Image1: TImage;   btnOpen: TButton;   Image2: TImage;   OpenPictureDialog1: TOpenPictureDialog;   PaintBox1: TPaintBox;   procedure btnOpenClick(Sender: TObject);   procedure FormCreate(Sender: TObject);   private   { Private declarations }   public   { Public declarations }   end;   var   Form1: TForm1;   implementation   {$R *.dfm}   procedure TForm1.btnOpenClick(Sender: TObject);   var   i,j:Integer;   hDC1:HDC;   hDC2:HDC;   begin   if(self.OpenPictureDialog1.Execute()) then   begin   Image1.Picture.Bitmap.LoadFromFile(OpenPictureDialog1.FileName);   Image1.Visible:=true;   hDC1:=Image1.Canvas.Handle;   hDC2:=PaintBox1.Canvas.Handle;   for i:=0 to (Image1.Width div 10) do   begin   for j:=0 to 10 do   begin   BitBlt(hDC2,j*Image1.Width div 10,0,i+2,Image1.Height,   hDC1,j*Image1.Width div 10,0,SRCCOPY);   Sleep(10);   end;   end;   end;   end;   procedure TForm1.FormCreate(Sender: TObject);   begin   self.OpenPictureDialog1.Filter := 'BMP files (*.bmp)|*.bmp';   end;   end.   保存文件,然后按F9键运行程序。在程序运行的初始画面上单击“打开”按钮,弹出一个提示用户选择图像文件的“打开”对话框。确认选择后,在窗体的TPaintBox上就会显示图像的门帘效果,过程中间的显示如图所示          在BitBlt()函数的参数中,特别值得一提的是参数dwRop,它提供了源图与目标图的15种组合方式。但是一般都采用SRCCOPY,即把源图复制给目标图。读者如果可以灵活运用这个参数,就可以制作出更加丰富多彩的图像 评论
正在加载评论......
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值