0

我将 3 个大约 3M 的 gif 组合成一个更大的 gif。

到目前为止,我已经使用 magick 和 convert 来完成这项工作,但它们最终消耗了超过 6G 的 RAM 并被杀死(...)。

convert pic1.gif pic2.gif pic3.gif final.gif

谷歌搜索我发现了 gifsicle,它最终在很短的时间内组合了我的三个 gif,并且消耗了很少的 RAM ......

gifsicle pic1.gif pic2.gif pic3.gif > final.gif

作为前端用户,我对这些工具的理解有限,但是 convert (magick) 和 gifsicle 之间的性能怎么会有如此不同呢?

4

1 回答 1

2

Gifsicle 仅针对 gif 进行特殊优化。ImageMagick 是一个通用的图像处理器,也不优化 gif。它的量化代码准确但速度慢。您的每张图像都需要量化为 256 色或更少。由于您的图像是 Gif,它们已经被量化为 256 色或更少。但每个人都可能使用不同的颜色集。在 ImageMagick 中,最好找到一组常见的颜色并使用 -remap color_map_image 将所有输入图像转换为同一组颜色。这将减小文件大小。您只需附加 3 个输入 gif 并获取颜色映射图像的唯一颜色。您还可以添加 -layers optimize 以进一步减小文件大小。

convert pic1.gif pic2.gif pic3.gif \
+append +dither -colors 256 -unique-colors colormap.gif

convert \
\( pic1.gif +dither -remap colormap.gif \)
\( pic2.gif +dither -remap colormap.gif \)
\( pic3.gif +dither -remap colormap.gif \)
-layers optimize \
final.gif


但是,gifsicle 可能仍然更好,因为它是专门用于 gif 图像的工具。

另请参阅https://imagemagick.org/Usage/formats/#gif_non-im

于 2018-11-01T20:15:19.733 回答