Fireworks 和 ImageReady 在 GIF 动画处理上的区别

  本次涉及的软件版本为:Macromedia Fireworks MX 2004,简称 FW,工程文件为 PNG;Adobe ImageReady CS2,简称 IR,工程文件为 PSD。另外,还涉及软件 GIF Movie Gear,版本为 4.2,简称 GMG,无工程文件。

  FW 制作 GIF 动画的工程,是基于帧的,在每一帧上建立仅属于此帧的的图层。FW 每个图层都只相当于文件夹,真正的图形/图像以子图层的形式归属于图层。图层可以升级为共享层,其下的子图层(具体图形/图像)都成为所有帧所共享的元素。IR 的工程却恰恰相反,是基于图层的。IR 每个图层都是单个的图形/图像,并且永远都是存在于所有帧上;但是用户可以在各帧上调节各图层的可见性,以达到只显示“本帧所要图层”的目的。

  如果说在工程上的思路不同只是关系到用户习惯的话,那么导出 GIF 动画时优化效果上的差异,则是用户们不得不考虑的。FW 对 GIF 的优化,主要是采用了“自动裁剪”和“自动差异化”功能,这两项功能都是在图像已经使用 GIF 色板后才运作的。裁剪的作用,是把第二帧到末帧的所有帧,针对第一帧进行图像差异比较,找出有差异的矩形区域(每帧只能有一个区域),裁剪掉矩形区域外所有的图像(即与第一帧相同的部分);差异化只有在启用“自动裁剪”后才起效,对区域内的图像再进行比较,裁剪掉在同一位置与第一帧相同的像素。FW 导出的 GIF 动画文件非常小,特别是差异部分本身就是矩形轮廓的时候,因为 FW 不会在差异矩形区域外保留多余的像素信息。但是,FW 有个致命伤,那就是默认导出设置会使得图像的渐变色呈现出明显的分层(虽然主要是怪单个 GIF 最多只能用 256 种颜色),影响美观。所以当 GIF 出现渐变色的时候,我们就要考虑使用 IR 了,IR 对这个问题的处理是非常出色的。但是,IR 的缺点也很明显,因为其默认导出设置只使用无区域限制的像素级差异化裁剪,没有矩形区域,而且识别不精确,经常把一些理论上一样颜色的同位置像素识别为不同色。看来 Adobe  在收购了 Macromedia 后对 FW 的消化并不完美。

  接下来的问题非常有趣。

  一,IR 为制作 GIF 动画而保存的已完工的 PSD 工程文件(有作背景的共享图层),在 FW 可以打开,所有图层都在,只是帧数变成 1,整理下后能很快由 FW 导出 GIF 动画;而用 GMG 打开的话,选择每帧都融合背景,就可以直接导出 GIF 动画。由 IR 的 PSD 经 FW 或 GMG 导出的 GIF 动画,居然都会有 PNG 工程那样的图层数据结构,所以再用 FW 打开就能看到 FW 概念中的图层和子图层,而原本在 PSD 中的背景就在共享图层中。但是 IR 自己直接导出的 GIF 动画却没有这样的结构。

  二,FW 为制作 GIF 动画而保存的已完工的 PNG 工程文件(有作背景的共享与层),在 IR 中可以打开,但是只有一个图层(相当于 FW 里一帧里展现的所有图层的融合体),当然只有一帧,也就是 PNG 在 FW 里被保存瞬间所激活的帧。而用 GMG 打开的话,老版本(比如 3.0),无法打开或导入;现在的版本是可以打开或导入的,但是结果和在 IR 里一样。看来用 PNG 作工程文件的做法已经淘汰了,完全没有兼容性。FW 自己直接导出的 GIF 动画也没有 PNG 那样的结构。

  三,只有 GMG 才能看到 GIF 动画文件中真正的图像数据样貌,即第一帧是由背景和初态差异图像所融合的单一图像,之后的帧全部只是相当于第一帧的差异图像(除差异像素外都呈透明状)。无论是 FW 还是 IR,打开 GIF 动画文件都只能看到已经被重新处理过的图像。