笔者每次浏览Web网页时,总是被许多生动有趣的小动画深深吸引,十分佩服作者的想象力和制作技巧。在使用VB进行应用软件开发设计中,为使软件的人机界面新颖友好,总想加点动画作点缀,但又常常苦于一幅幅动画图片的绘制或寻找!因此萌发了一种奇妙的设想:能否让Web页面上的动画在VB应用软件界面上活起来?幸运的是,当前图像处理软件甚多,终于将笔者的这一设想变成了现实。
VB动画设计
动画的制作原理很简单:首先绘制几幅相近但又有细微变化的图片,然后每隔一段很短的时间就依次显示其中一幅,由于人眼视觉暂留,就能看到连贯的动画效果。
使用VB进行动画设计非常方便,因为其工具箱中有图像、图片、时钟控件。只要获得了一幅幅动画单幅图像文件,把它们放入图像控制数组中去,便可用时钟控件的控制属性Interval来控制每幅图片的显示间隔,把最终动画显示的位置确定好后,按时间间隔依次从图像控制数组中取出一幅图显示。如此交替反复显示,即可产生动画效果,编程实现比较简单。
VB动画设计所能接收的单幅图片文件的格式有四种,即*.Bmp、*.Ico、*.Wmf和*.Dib。其中*.Bmp文件的来源最广,不但可以使用Windows环境下的各种绘图软件来绘制(但费时费力,且不是每个人都有绘画的天才),也可以使用Windows所提供的现成的位图文件,或者用彩色扫描仪扫入等等。在此,笔者所感兴趣的则是从Internet上Web站点网页上下载自己喜爱的动画图像文件,再经过图形软件分解、处理成一幅幅*.Bmp图片文件,它们会给软件的人机界面带来全新的感受。
Web动画图像分解方法
从Web网页上下载静态图像文件比较简单,下载后需要进行分解。
动画图像文件的分解是动画设计的逆过程,即把一个动画效果的图像文件分解形成它的多幅图片文件。可使用GIFConstructionSet软件打开(此软件可在许多服务器上下载)要分解的图像文件,该软件即可将动画自动分解为多幅组成动画的单幅图画。
使用上述软件分解后,首先看看是由几幅图画组成的动画,如果有N幅图画,就把动画文件拷贝N份。
然后,逐个打开拷贝文件对每个文件进行处理,处理过程中只需在第一个文件中保留静止的图像,在其它文件中只保留动画图像。
最后,使用具有图形转换功能的图形处理软件如Phtoshop,就可把得到的N个*.Gif图像文件都转换成*.Bmp文件的格式。
Web动画分解过程概括描述如下:
Web动画下载→Web动画分解(GIFConstructionSet)→Web动画格式转换(Phtoshop等)。
一个实例
这是一个在数据库查询窗体上设计的眼睛转动查看的动画,此动画的每个单幅图画就是从Web网页上下载分解得到的。
动画设计实现步骤如下:
首先,用上述方法把Web网页上转眼睛动画下载保存、分解、格式转换成二幅画Eyesl.Bmp和Eyes2.Bmp(此动画简单,只由二幅画组成)。
其次,将Eyes1.Bmp和Eyes2.Bmp放入图像控制数组中。 窗体构造简单表示如下:
窗体属性表如下:
程序代码如下:
在窗体的General中声明:
DimRotateflagasInteger交替显示标志
DimCurrenteyesasInteger当前显示第几幅画窗体装载初始化:
SubForm_Load()
Rotateflag=1进入显示(时钟计数开始)
Currenteyes=0第一幅画定位
EndSub
交替显示子程序(时钟控制显示间隔,本例为250ms):
SubTmrtimer_Timer()
IfRotateflag=1Then
交替显示开始 Simgeyes.Picture=Imgeyes(Currenteyes).Picture开始显示第一幅画
Currenteyes=Currenteyes+1
250ms后显示下一幅
IfCurrenteyes=2Then
Currenteyes=0
如果已显示了两幅,则再从第一幅显示
EndIf
EndIf
EndSub
结束
利用Web网页动画图像分解成的多个单幅图画,不但可以为VB动画设计提供方便,也可用于VC等动画编程。目前,Internet的范围日益扩大,使Web与软件编程联系起来,无疑提高了应用软件的制作效率和质量。->