Imagemagick在动画GIF中“展平”帧,同时保持全局颜色表

时间:2016-05-27 16:51:56

标签: imagemagick

我有一个带有256byte全局颜色表的动画GIF。后面的帧不会扩展到完整的画布尺寸,因此它们会“覆盖”画布区域。早期图层上的图形仅被后续图层上的图形部分遮挡。我的目标是“展平”图像,以便我有一个1帧/非动画gif,它显示为动画GIF在其动画的最后一帧上(在绘制完所有帧之后)。我可以用imagemagick实现理想的结果:

convert animation.gif -flatten flattened.gif

这会创建一个名为flattened.gif的单帧GIF,看起来像animation.gif在它的最终帧上。太好了!

我的问题是flattened.gif有一个不同的(偶然更小的)全局颜色表。我有一些不寻常的特定于应用程序的要求,这意味着我需要将展平的GIF的全局颜色表保持与源的动态GIF的全局颜色表相同。

任何建议都非常感谢。

1 个答案:

答案 0 :(得分:0)

尝试使用此命令从原始GIF中提取颜色并将其保存为palette.gif

convert original.gif -unique-colors palette.gif 

然后,当您有最终图像时,将原始调色板应用于:

convert final.gif -remap palette.gif result.gif