刻录时光

时光飞逝,莫让网络蹉跎了岁月

Server-side GIF 转 SWF

2007年八月1日

最近在做的项目需要在服务器端将 GIF 动画转换成 SWF,服务器端程序是 PHP,思路有两个:
1. 使用 Swftools 的 GIF2SWF 进行转换。优点:command-line方式简单、速度快;缺点:目前版本的 GIF2SWF 对于某些类型的 GIF 动画转换不准确,有帧重叠和色彩丢失的问题,并且不能设置导出的 SWF 版本。
2. 使用服务器端 GIF 动画解析器先进行分割,比如:Gifsicle(Gifsicle 网站上的命令有问题,导出单帧图片应该这样 % gifsicle anim.gif #0 > firstframe.gif)、ImageMagick(MagickWand)或者 PHP GIFDecoder,然后再用 PHP Ming 生成 SWF。优点:可以提取 GIF 的单帧图片;缺点:GIF 类型很多,需要先进行类型判断,再根据不同类型进行处理,过程很麻烦,再加上 Decoder 问题多多,拆解的单帧图片会有各种问题。

两种方法都试了,最后放弃第二种,因为 Swftools 是开源的,所以决定修改 GIF2SWF 代码来解决,在 Linux 下编译 Swftools 代码很方便,只用了半天时间就解决了上面的问题,通过简单的设置后竟然可以支持导出 SWF9!这样 AS3 就可以和载入的 SWF 交互了。

归档