网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
用Delphi实现位图显示特技
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式
调用WindowsAPI。每
当生成一个新的项目时,Delphi自动地把WinType和WinPr
ocs单元名添加到所生成单元文件中的uses子句中,这两
个单元包含了Delphi调用WindowsAPI所必须的类型定义和
例程声明。这样,只需使用正确的参数就可以直接调用Win
dowsAPI,而不需要再作其它任何声明。

  BitBlt及类似的StretchBlt函数是Windows功能强大
的图形处理函数,它的功能与TCanvas的CopyRect函数一样
,不仅能够将位图或位图的一部分从一处拷贝到另一处,
它还可以根据256个不同的光栅操作码将三幅位图结合起
来,从而呈现不同的视觉效果。在WindowsAPI函数中,所
有的blt函数的鼻祖都是BitBlt函数。在Delphi中BitBlt函
数声明及参数意义如下:

  functionBitBlt(DestDC:HDC;X,Y,nWidth,Hei
ght:Integer;SrcDC;HDC;XSrc,YSRC:Ingeger;Rop
:LongInt):Bool;

  DestDC源设备上下文句柄

  X,Y源矩形左上角坐标

  nWidth,Height目标矩形的宽度和高度

  SrcDC目标矩形句柄

  XSrc,TSrc源位图矩形左上角坐标

  Rop光栅操作码。对于简单的拷贝,其值为SRCCOPY

  下面同样以一个例子来说明如何用BitBlt实现特技。
本例所实现的特技是将选定的位图从屏幕中心开始向四周
扩散,最后整个位图全部显示出来。此例的程序清单如下


  procedureTForm1,Button2Click(Sender:TObject
);

  conststepΚ200;

  var

  bitmap:tbitmap;

  x0,y0:integer;{屏幕中心坐标}

  midx,midy:integer;

  ratiox,ratioy:teal;

  i:integer;

  begin

  bitmap:Κtbitmap.create;

  bitmap.loadfromfile(edit1.text);

  x0:Κround(form1.width/2);

  y0:Κround(form1.height/2);

  ratiox:Κbitmap.width/step;

  ratioy:Κbitmap.height/step;

  fori:Κ0tostepdo

  begin

  midx:Κround(ratiox*i);

  midy:Κround(ratioy*i);

  bitblt(form1.canvas.handle,x0-midx,y0-m
idy,round(ratiox*i*1),round(ratioy*i*2)
,bitmap.canvas.handle,x0-midy,y0-midy,,src
copy);

  end;

  bitmap.free;

  end.

  • 上一篇资讯: Windows API函数使用技巧
  • 下一篇资讯: 显示密码的原理
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号