Magick vs. gifsicle - 为什么在组合 gif 时会有如此大的差异?

Magick vs. gifsicle - why such a difference when combining gif's?

我把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的性能怎么会有这么大的差异呢?

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