您的位置:首页 > 编程语言 > VB

用vb实现图像转换效果_vb教程

2008-10-08 14:27 344 查看
PaintPicture是自VB4以后新提供的图像图像处理方法,他的基本功能是图像块传输,在以前的VB版本中要产生块传输效果,需采用WindowsGDI中的块传输函数BitBltAPI调用。PaintPicture正是VB中用来代替BitBltAPI调用的简单而方便的方法。他能快速地将两幅位图进行合并;能将位图的全部或某一部分快速剪切并粘贴到其他地方;并能将位图自动延伸或压缩以适应新的环境;能在屏幕上不同位置之间、屏幕和内存之间传递位图;他采用32位三元光栅操作代码(ROP),在源位图、选定的刷子位图和目标位图之间进行颜色组合,生成目标位图中的最终颜色,他将13个常用的ROPR操作以内部常量形式给出,不需任何声明,不用理会其32位参数值。
基本格式:
Object.PaintPicturepicture,x1,y1,width1,height1,x2,y2,Width2,height2,opcode

其中Object能够为窗体或PictureBox控件Picture能够为BMP、Dib、Ico、Wmf、Emf等格式的图片
  X1、Y1、Width1、height1为目标位图的参数
  X2、Y2、Width2、height2为源位图的参数
 opcode表示源图和目标位图(或刷子位图)的组合关系,该参数和BitBlt中dwRop参数含义相同。
  VB4为opcode定义了13个内部常量:
  vbDstInvert:目标位图取反
  vbSrcCopy:源位图直接覆盖目标位图
  vbSrcAnd:源位图和目标位图进行“和”操作
 bSrcInvert:源位图和目标位图进行“异或”操作
  vbSrcPaint:源位图和目标位图进行“或”操作
  vbNotSrcCopy:源位图取反
  vbSrcErase:目标位图取反,再和源位图进行“和”操作
  vbNotSrcErase:源位图和目标位图进行“或非”操作
  vbMergePaint:源位图取反,再和目标位图进行“或”操作
  此外,和刷子位图有关的常量是vbMergeCopy、vbPatCopy、vbPatInvert和vbPatPaint,这13个内部常量能够在菜单View/ObjectBrowser/VB-VisualBasicobjectsandprocedures/RasterOpConstants中列出。
  巧用PainPicture方法,结合控件属性,能够方便地产生许多常见的图像转换效果,如我们在多媒体作品及电视中常见的图像旋转引入、翻转、飞入、滑入、弹出、淡入淡出、隐现等动画效果。举例:图像滑入(Wipe)效果的实现
  在滑入效果中,新图像慢慢逐渐覆盖旧图像,就象在墙上展于一幅卷成筒状的画。
  1.缺省窗体Form1
  2.Form1上置PictureBox1、PictureBox2两大小相同的图片控件及Timer时钟控件PictureBox1中安装源图,在PictureBox2中展开PictureBox1中的图像
  3.编程
  PrivateSubFormμLoad()
  Picture1.ScaleModeΚPixel
  Picture2.ScaleModeΚPixe1
  hΚ0
  tΚ2
  EndSUb

  PrivateSubTimerμTimer()
  IfhΙΚPicture1.ScaleHeightThen
  Picture2.PaintPicturePicture1.Picture,0,h,Picture2.ScaleWidth,t,0,h,Picture1.ScaleWidth,t,vbSrcCopy  hΚh+t
  EndIf
  EndSub
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: