ASP无组件将多个静态GIF图片添加生成一幅新的GIF动画。编程步骤如下:
1、导入A、B、C三幅静态GIF图片(用Adodb.stream分别读取)文件,先将其中一幅的文件头+色盘传递给GIFheadinfo,后面有用。
2、分别读取三幅图片的宽度和高度,将最大的一个宽度值传递给GiFwidth,同样,将最大一个高度传递给GIFheight。有了这两个值,我们也将GIFheadinfo中的高度和宽度分别替换为GIFwidth,GIFheight,新的文件头产生了。
3、在GIF文件头后加个标记,以识别这是一张GIF动画图片。识别是否是动画,要检查文件中是否包含chr(0x21).chr(0xff).chr(0x0b).'NETSCAPE2.0'chr(0x21).chr(0xff) 是gif图片中扩展功能段的标头‘NETSCAPE2.0‘是扩展功能执行的程序名。这里还要控制GIF动画的播放次数。如果其值为0,则为无限次播放,这个我们只要为0就OK了。
4、这一步简单,就是分别加入三幅GIF图片的图像数据,每张图像数据的开头有此图片的信息头,指定这张图片的宽度和高度,以及偏移量。OK,如果我们想让三幅图全部居中(即水平居中,垂直居中),我们已经将GIF动画的宽度和高度都设为了最大的,因此,三幅图的宽度和高度只有等于或小于,而不可能大于了,我们再来分别看这三幅图的宽度和高度,如果等于宽(高)度就跳过,反之则X=(GIFwidth-thisGIFwidth)/2,这是水平偏移量,Y(垂直偏移量)也同样。
5、经过第4步,我们实现了将三幅图像都居中了,至于播放顺序,就是你摆放三幅图片的先后顺序了。^_^...
6、记得在每幅图(现在应该说是这幅GIF动画中的帧了)还添加一个延迟时间,设定此帧的背景色、透明色等。其实在一款GIF动画制作工具好像叫“GIF Movie Gear”的帧属性中可以很详细地看到GIF动画及其帧有哪些属性需要设置,然后针对一幅GIF动画去慢慢分析了解,哪个属性在哪个位置。
7、OK,我们的GIF动画制作完成了。