主题:多媒体的编程技巧(1998-1999收集整理)
巧用VB设计图像切换效果
刘九七
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、vbPatCopy、vbPatInvert和vbPatPaint,这13个内部常量可以在菜单View/ObjectBrowser/VB-VisualBasicobjectsandprocedures/RasterOpConstants中列出。
巧用PainPicture方法,结合控件属性,可以方便地产生许多常见的图像切换效果,如我们在多媒体作品及电视中常见的图像旋转引入、翻转、飞入、滑入、弹出、淡入淡出、隐现等动画效果。
举例:图像滑入(Wipe)效果的实现
在滑入效果中,新图像慢慢逐渐覆盖旧图像,就象在墙上展于一幅卷成筒状的画。
1.缺省窗体Form1
2.Form1上置PictureBox1、PictureBox2两大小相同的图片控件及Timer时钟控件PictureBox1中安装源图,在PictureBox2中展开PictureBox1中的图像
3.编程
Private Sub Formμ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.ScaleWid
th,t,vbSrcCopy
hΚh+t
EndIf
EndSub
Web动画图像分解在VB动画设计中的应用
武汉 任清珍 黄可
笔者每次浏览Web网页时,总是被许多生动有趣的小动画深深吸引,十分佩服作者的想象力和制作技巧。在使用VB进行应用软件开发设计中,为使软件的人机界面新颖友好,总想加点动画作点缀,但又常常苦于一幅幅动画图片的绘制或寻找!因此萌发了一种奇妙的设想:能否让Web页面上的动画在VB应用软件界面上活起来?幸运的是,当前图像处理软件甚多,终于将笔者的这一设想变成了现实。
VB动画设计
动画的制作原理很简单:首先绘制几幅相近但又有细微变化的图片,然后每隔一段很短的时间就依次显示其中一幅,由于人眼视觉暂留,就能看到连贯的动画效果。 使用VB进行动画设计非常方便,因为其工具箱中有图像、图片、时钟控件。只要获得了一幅幅动画单幅图像文件,把它们放入图像控制数组中去,便可用时钟控件的控制属性Interval来控制每幅图片的显示间隔,把最终动画显示的位置确定好后,按时间间隔依次从图像控制数组中取出一幅图显示。如此交替反复显示,即可产生动画效果,编程实现比较简单。
VB动画设计所能接收的单幅图片文件的格式有四种,即*.Bmp、*.Ico、*.Wmf和*.Dib。其中*.Bmp文件的来源最广,不但可以使用Windows环境下的各种绘图软件来绘制(但费时费力,且不是每个人都有绘画的天才),也可以使用Windows所提供的现成的位图文件,或者用彩色扫描仪扫入等等。在此,笔者所感兴趣的则是从Internet上Web站点网页上下载自己喜爱的动画图像文件,再经过图形软件分解、处理成一幅幅*.Bmp图片文件,它们会给软件的人机界面带来全新的感受。
Web动画图像分解方法
从Web网页上下载静态图像文件比较简单,下载后需要进行分解。 动画图像文件的分解是动画设计的逆过程,即把一个动画效果的图像文件分解形成它的多幅图片文件。可使用GIF Construction Set软件打开(此软件可在许多服务器上下载)要分解的图像文件,该软件即可将动画自动分解为多幅组成动画的单幅图画。 使用上述软件分解后,首先看看是由几幅图画组成的动画,如果有N幅图画,就把动画文件拷贝N份。 然后,逐个打开拷贝文件对每个文件进行处理,处理过程中只需在第一个文件中保留静止的图像,在其它文件中只保留动画图像。 最后,使用具有图形转换功能的图形处理软件如Phtoshop,就可把得到的N个*.Gif图像文件都转换成*.Bmp文件的格式。Web动画分解过程概括描述如下: Web动画下载→Web动画分解(GIF Construction Set)→Web动画格式转换(Phtoshop等)。
一个实例
这是一个在数据库查询窗体上设计的眼睛转动查看的动画,此动画的每个单幅图画就是从Web网页上下载分解得到的。 动画设计实现步骤如下: 首先,用上述方法把Web网页上转眼睛动画下载保存、分解、格式转换成二幅画Eyesl.Bmp和Eyes2.Bmp(此动画简单,只由二幅画组成)。 其次,将Eyes1.Bmp和Eyes2.Bmp放入图像控制数组中。 窗体构造简单表示如下:
窗体属性表如下:
程序代码如下:
在窗体的General中声明:
Dim Rotateflag as Integer '交替显示标志
Dim Currenteyes as Integer '当前显示第几幅画
窗体装载初始化:
Sub Form_Load() Rotateflag=1 '进入显示(时钟计数开始)
Currenteyes=0 '第一幅画定位
End Sub
交替显示子程序(时钟控制显示间隔,本例为250ms):
Sub Tmrtimer_Timer()
If Rotateflag=1 Then '交替显示开始
SImgeyes.Picture=Imgeyes(Currenteyes).Picture '开始显示第一幅画
Currenteyes=Currenteyes+1 '250ms后显示下一幅
If Currenteyes=2 Then Currenteyes=0 '如果已显示了两幅,则再从第一幅显示
End If
End If
End Sub '结束
利用Web网页动画图像分解成的多个单幅图画,不但可以为VB动画设计提供方便,也可用于VC等动画编程。目前,Internet的范围日益扩大,使Web与软件编程联系起来,无疑提高了应用软件的制作效率和质量。
图像艺术清屏
山东李鲁群
几年前,《电脑爱好者》曾以《趣味清屏》一文抛砖引玉,使广大电脑发烧友大开眼界,并以此引出千姿百态DOS下的清屏方法。而随着Windows的普及,DOS下的清屏方式也应走向Windows艺术清屏。本文向大家介绍在Windows下,如何利用VB做图像拖拽,形成图像艺术清屏效果。希望能再次抛砖引玉,在电脑爱好者天地中,出现更好、更美的清屏方法。
一、准备工作
获取若干图形尺寸大小相同的BMP图形文件。推荐以下两种方法:
1利用PHOTOSHOP或画笔裁剪出若干图形尺寸相同的BMP图形文件存盘。
2利用现有图像文件,通过3DS生成若干图形尺寸相同的BMP图形文件。简明步骤如下:
(1)进入3DS中,将Render-Setup-Background文件名,设定成现有图形文件名。
(2)在任意视图中,设定Render-View-Configure-文件类型256色BMP非压缩类型、背景Recale、disk存盘,即可生成符合图形尺寸大小的BMP图形文件存盘。
二、设计方法
1放置控件
在窗体Form1中 ,建立两个PictureBox控件:
Form1.Picture1(0)和Form1.Picture1(1),设Form1.Picture1(1)在Form1.Picture1(0)之上,并使此两个控件的位置大小完全一样
Form1.Picture1(0).Left=Form1.Picture1(1).Left
Form1.Picture1(0).Top=Form1.Picture1(1).Top
Form1.Picture1(0).Width=Form1.Picture1(1).Width
Form1.Picture1(0).Height=Form1.Picture1(1).Height
且:Form1.Picture1(0).AutoRedraw=True
Form1.Picture1(0).AutoSize=False
Form1.Picture1(1).AutoRedraw=True
Form1.Picture1(1).AutoSize=False
2图像艺术清屏实现原理
利用反复交替改变Form1Picture1(1)的Width或Height的大小实现图像的左右上下拖拽、卷起,达到图像清屏效果。可通过设置CommandButton的事件代码实现(见CommandButton的Command1代码)。
通过循环控制上层图Form1.Picturc1(1)的Width或Height大小:
当其由小→大循环递增时,形成图像拖拽效果,当Width或Height达到实际图像的宽度或高度,完全遮盖住下层图Form1.Picture1(0)时,对下层图Form1.Picture1(0)换图,改变Form1.Picture1(0)Picture属性。
当其由大→小循环递增时,形成上层图像卷起、下层图像拖拽的效果,当Width或Height达到0,完全露出下层图Form1.Picture1(0)时,对上层图Form1.Picture1(1).Picture换图,改变Form1.Picture1(1).Picture属性。
三、VB实现图像艺术清屏程序部分关键代码
其中t1-t7.bmp均为320*200*256C分辨率的BMP文件。
Private Sub Form-Load()
Form1.Caption = ″电脑艺术趣味清屏″
′将两图形控件重合放置,Picture1(0)在下,Picure1(1)在上
′Picture1(0)完全被Picure1(1)遮住
Form1.Picture1(0).AutoRedraw = True
Form1.Picture1(0).AutoSize = False
Form1.Picture1(1).AutoRedraw = True
Form1.Picture1(1).AutoSize = False
Form1.Picture1(0).Left = Form1.Picture1(1).Left
Form1.Picture1(0).Top = Form1.Picture1(1).Top
Form1.Picture1(0).Width = Form1.Picture1(1).Width
Form1.Picture1(0).Height = Form1.Picture1(1).Height
EndSub
Private Sub Command1_Click()
′将图形文件装入Picture1控件Picture属性中,注意图wqje文件所在的路径
Form1.Picture1(0).Picture = LoadPicture(″e:\3ds4\images\t1.bmp″)
Form1.Picture1(1).Picture = LoadPicture(″e:\3ds4\images\t3.bmp″)
′记录下图像的宽度w1和高度h1
w1 = Form1.Picture1(1).Width
h1 = Form1.Picture1(1).Height
′Picture1(1).Picture由不可见状态,从左向右拉开形成图形清屏效果
Form1.Picture1(1).Height = h1
Form1.Picture1(1).Width = 0
For i = 0 To 50
Form1.Picture1(1).Width = i * w1 / 50
Next i
′当Picture1(1).Picture完全遮住Picture1(0).Picture时,换Picture1(0).Picture图
Form1.Picture1(0).Picture = LoadPicture("e:\3ds4\images\t4.bmp")
′Picture1(1)Picture从右向左折叠,露出Form1.Picture1(0).Picture图形
For i = 0 To 50
Form1.Picture1(1).Width = w1 - i * w1 / 50
Next i
′Picture1(1).Picture为不可见状态时,换图再次从左向右拉开形成图形清屏效果
Form1.Picture1(1).Picture = LoadPicture(″e:3ds4\images\t5.bmp″)
Form1.Picture1(1).Width = 0
For i = 0 To 50 ′step w1/50′
Form1.Picture1(1).Width = i * w1 / 50
Next i
′当Picture1(1).Picture完全遮住Picture1(0).Picture时,再次换 Picture1(0).Picture图
Form1.Picture1(0).Picture = LoadPicture(″e:\3ds4\images\t7.bmp″)
′当Picture1(1).Picture从下向上折叠,露出Form1.Picture1(0).Picture图形
Form1.Picture1(1).Height = h1
For i = 0 To 50
Form1.Picture1(1).Height = h1 - i * h1 / 50
Next i
′当Picture1(1).Picture为不可见状态时,换图再次从上向下拉开形成图形清屏效果。
Form1.Picture1(1).Picture = LoadPicture(″e:3ds4\images\t6.bmp″)
For i = 0 To 50
Form1.Picture1(1).Height = i * h1 / 50
Next i
End Sub
Private Sub Command2_Click()
End
End Sub
四、说明
当两个以上256色的图形文件同时在一屏幕显示,由于它们分享调色板颜色资源,若它们使用的颜色截然不同,就会出现颜色失真现象。应尽量避免同时使用两个256色的图形文件。如果你的图像可通过扫描获得,你应将所有图片一次扫描得到一个大图像文件,再将其裁剪成各尺寸相同的小图,这样即可完全避免上述颜色失真现象。
刘九七
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、vbPatCopy、vbPatInvert和vbPatPaint,这13个内部常量可以在菜单View/ObjectBrowser/VB-VisualBasicobjectsandprocedures/RasterOpConstants中列出。
巧用PainPicture方法,结合控件属性,可以方便地产生许多常见的图像切换效果,如我们在多媒体作品及电视中常见的图像旋转引入、翻转、飞入、滑入、弹出、淡入淡出、隐现等动画效果。
举例:图像滑入(Wipe)效果的实现
在滑入效果中,新图像慢慢逐渐覆盖旧图像,就象在墙上展于一幅卷成筒状的画。
1.缺省窗体Form1
2.Form1上置PictureBox1、PictureBox2两大小相同的图片控件及Timer时钟控件PictureBox1中安装源图,在PictureBox2中展开PictureBox1中的图像
3.编程
Private Sub Formμ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.ScaleWid
th,t,vbSrcCopy
hΚh+t
EndIf
EndSub
Web动画图像分解在VB动画设计中的应用
武汉 任清珍 黄可
笔者每次浏览Web网页时,总是被许多生动有趣的小动画深深吸引,十分佩服作者的想象力和制作技巧。在使用VB进行应用软件开发设计中,为使软件的人机界面新颖友好,总想加点动画作点缀,但又常常苦于一幅幅动画图片的绘制或寻找!因此萌发了一种奇妙的设想:能否让Web页面上的动画在VB应用软件界面上活起来?幸运的是,当前图像处理软件甚多,终于将笔者的这一设想变成了现实。
VB动画设计
动画的制作原理很简单:首先绘制几幅相近但又有细微变化的图片,然后每隔一段很短的时间就依次显示其中一幅,由于人眼视觉暂留,就能看到连贯的动画效果。 使用VB进行动画设计非常方便,因为其工具箱中有图像、图片、时钟控件。只要获得了一幅幅动画单幅图像文件,把它们放入图像控制数组中去,便可用时钟控件的控制属性Interval来控制每幅图片的显示间隔,把最终动画显示的位置确定好后,按时间间隔依次从图像控制数组中取出一幅图显示。如此交替反复显示,即可产生动画效果,编程实现比较简单。
VB动画设计所能接收的单幅图片文件的格式有四种,即*.Bmp、*.Ico、*.Wmf和*.Dib。其中*.Bmp文件的来源最广,不但可以使用Windows环境下的各种绘图软件来绘制(但费时费力,且不是每个人都有绘画的天才),也可以使用Windows所提供的现成的位图文件,或者用彩色扫描仪扫入等等。在此,笔者所感兴趣的则是从Internet上Web站点网页上下载自己喜爱的动画图像文件,再经过图形软件分解、处理成一幅幅*.Bmp图片文件,它们会给软件的人机界面带来全新的感受。
Web动画图像分解方法
从Web网页上下载静态图像文件比较简单,下载后需要进行分解。 动画图像文件的分解是动画设计的逆过程,即把一个动画效果的图像文件分解形成它的多幅图片文件。可使用GIF Construction Set软件打开(此软件可在许多服务器上下载)要分解的图像文件,该软件即可将动画自动分解为多幅组成动画的单幅图画。 使用上述软件分解后,首先看看是由几幅图画组成的动画,如果有N幅图画,就把动画文件拷贝N份。 然后,逐个打开拷贝文件对每个文件进行处理,处理过程中只需在第一个文件中保留静止的图像,在其它文件中只保留动画图像。 最后,使用具有图形转换功能的图形处理软件如Phtoshop,就可把得到的N个*.Gif图像文件都转换成*.Bmp文件的格式。Web动画分解过程概括描述如下: Web动画下载→Web动画分解(GIF Construction Set)→Web动画格式转换(Phtoshop等)。
一个实例
这是一个在数据库查询窗体上设计的眼睛转动查看的动画,此动画的每个单幅图画就是从Web网页上下载分解得到的。 动画设计实现步骤如下: 首先,用上述方法把Web网页上转眼睛动画下载保存、分解、格式转换成二幅画Eyesl.Bmp和Eyes2.Bmp(此动画简单,只由二幅画组成)。 其次,将Eyes1.Bmp和Eyes2.Bmp放入图像控制数组中。 窗体构造简单表示如下:
窗体属性表如下:
程序代码如下:
在窗体的General中声明:
Dim Rotateflag as Integer '交替显示标志
Dim Currenteyes as Integer '当前显示第几幅画
窗体装载初始化:
Sub Form_Load() Rotateflag=1 '进入显示(时钟计数开始)
Currenteyes=0 '第一幅画定位
End Sub
交替显示子程序(时钟控制显示间隔,本例为250ms):
Sub Tmrtimer_Timer()
If Rotateflag=1 Then '交替显示开始
SImgeyes.Picture=Imgeyes(Currenteyes).Picture '开始显示第一幅画
Currenteyes=Currenteyes+1 '250ms后显示下一幅
If Currenteyes=2 Then Currenteyes=0 '如果已显示了两幅,则再从第一幅显示
End If
End If
End Sub '结束
利用Web网页动画图像分解成的多个单幅图画,不但可以为VB动画设计提供方便,也可用于VC等动画编程。目前,Internet的范围日益扩大,使Web与软件编程联系起来,无疑提高了应用软件的制作效率和质量。
图像艺术清屏
山东李鲁群
几年前,《电脑爱好者》曾以《趣味清屏》一文抛砖引玉,使广大电脑发烧友大开眼界,并以此引出千姿百态DOS下的清屏方法。而随着Windows的普及,DOS下的清屏方式也应走向Windows艺术清屏。本文向大家介绍在Windows下,如何利用VB做图像拖拽,形成图像艺术清屏效果。希望能再次抛砖引玉,在电脑爱好者天地中,出现更好、更美的清屏方法。
一、准备工作
获取若干图形尺寸大小相同的BMP图形文件。推荐以下两种方法:
1利用PHOTOSHOP或画笔裁剪出若干图形尺寸相同的BMP图形文件存盘。
2利用现有图像文件,通过3DS生成若干图形尺寸相同的BMP图形文件。简明步骤如下:
(1)进入3DS中,将Render-Setup-Background文件名,设定成现有图形文件名。
(2)在任意视图中,设定Render-View-Configure-文件类型256色BMP非压缩类型、背景Recale、disk存盘,即可生成符合图形尺寸大小的BMP图形文件存盘。
二、设计方法
1放置控件
在窗体Form1中 ,建立两个PictureBox控件:
Form1.Picture1(0)和Form1.Picture1(1),设Form1.Picture1(1)在Form1.Picture1(0)之上,并使此两个控件的位置大小完全一样
Form1.Picture1(0).Left=Form1.Picture1(1).Left
Form1.Picture1(0).Top=Form1.Picture1(1).Top
Form1.Picture1(0).Width=Form1.Picture1(1).Width
Form1.Picture1(0).Height=Form1.Picture1(1).Height
且:Form1.Picture1(0).AutoRedraw=True
Form1.Picture1(0).AutoSize=False
Form1.Picture1(1).AutoRedraw=True
Form1.Picture1(1).AutoSize=False
2图像艺术清屏实现原理
利用反复交替改变Form1Picture1(1)的Width或Height的大小实现图像的左右上下拖拽、卷起,达到图像清屏效果。可通过设置CommandButton的事件代码实现(见CommandButton的Command1代码)。
通过循环控制上层图Form1.Picturc1(1)的Width或Height大小:
当其由小→大循环递增时,形成图像拖拽效果,当Width或Height达到实际图像的宽度或高度,完全遮盖住下层图Form1.Picture1(0)时,对下层图Form1.Picture1(0)换图,改变Form1.Picture1(0)Picture属性。
当其由大→小循环递增时,形成上层图像卷起、下层图像拖拽的效果,当Width或Height达到0,完全露出下层图Form1.Picture1(0)时,对上层图Form1.Picture1(1).Picture换图,改变Form1.Picture1(1).Picture属性。
三、VB实现图像艺术清屏程序部分关键代码
其中t1-t7.bmp均为320*200*256C分辨率的BMP文件。
Private Sub Form-Load()
Form1.Caption = ″电脑艺术趣味清屏″
′将两图形控件重合放置,Picture1(0)在下,Picure1(1)在上
′Picture1(0)完全被Picure1(1)遮住
Form1.Picture1(0).AutoRedraw = True
Form1.Picture1(0).AutoSize = False
Form1.Picture1(1).AutoRedraw = True
Form1.Picture1(1).AutoSize = False
Form1.Picture1(0).Left = Form1.Picture1(1).Left
Form1.Picture1(0).Top = Form1.Picture1(1).Top
Form1.Picture1(0).Width = Form1.Picture1(1).Width
Form1.Picture1(0).Height = Form1.Picture1(1).Height
EndSub
Private Sub Command1_Click()
′将图形文件装入Picture1控件Picture属性中,注意图wqje文件所在的路径
Form1.Picture1(0).Picture = LoadPicture(″e:\3ds4\images\t1.bmp″)
Form1.Picture1(1).Picture = LoadPicture(″e:\3ds4\images\t3.bmp″)
′记录下图像的宽度w1和高度h1
w1 = Form1.Picture1(1).Width
h1 = Form1.Picture1(1).Height
′Picture1(1).Picture由不可见状态,从左向右拉开形成图形清屏效果
Form1.Picture1(1).Height = h1
Form1.Picture1(1).Width = 0
For i = 0 To 50
Form1.Picture1(1).Width = i * w1 / 50
Next i
′当Picture1(1).Picture完全遮住Picture1(0).Picture时,换Picture1(0).Picture图
Form1.Picture1(0).Picture = LoadPicture("e:\3ds4\images\t4.bmp")
′Picture1(1)Picture从右向左折叠,露出Form1.Picture1(0).Picture图形
For i = 0 To 50
Form1.Picture1(1).Width = w1 - i * w1 / 50
Next i
′Picture1(1).Picture为不可见状态时,换图再次从左向右拉开形成图形清屏效果
Form1.Picture1(1).Picture = LoadPicture(″e:3ds4\images\t5.bmp″)
Form1.Picture1(1).Width = 0
For i = 0 To 50 ′step w1/50′
Form1.Picture1(1).Width = i * w1 / 50
Next i
′当Picture1(1).Picture完全遮住Picture1(0).Picture时,再次换 Picture1(0).Picture图
Form1.Picture1(0).Picture = LoadPicture(″e:\3ds4\images\t7.bmp″)
′当Picture1(1).Picture从下向上折叠,露出Form1.Picture1(0).Picture图形
Form1.Picture1(1).Height = h1
For i = 0 To 50
Form1.Picture1(1).Height = h1 - i * h1 / 50
Next i
′当Picture1(1).Picture为不可见状态时,换图再次从上向下拉开形成图形清屏效果。
Form1.Picture1(1).Picture = LoadPicture(″e:3ds4\images\t6.bmp″)
For i = 0 To 50
Form1.Picture1(1).Height = i * h1 / 50
Next i
End Sub
Private Sub Command2_Click()
End
End Sub
四、说明
当两个以上256色的图形文件同时在一屏幕显示,由于它们分享调色板颜色资源,若它们使用的颜色截然不同,就会出现颜色失真现象。应尽量避免同时使用两个256色的图形文件。如果你的图像可通过扫描获得,你应将所有图片一次扫描得到一个大图像文件,再将其裁剪成各尺寸相同的小图,这样即可完全避免上述颜色失真现象。