如何使用imagemagick制作高质量动画图像

如何使用imagemagick制作高质量动画图像,imagemagick,Imagemagick,我想从这些.png图像制作一个动画gif: 我使用以下命令执行此操作: convert -layers OptimizePlus -delay 25x100 ps1-*.png -loop 0 ps1.gif 它成功制作了一个动画gif,但是,输出的图像质量非常低,并且比输入的图像小: 经过一些搜索,我得到了高质量的 convert -layers OptimizePlus -delay 25x100 -quality 99 ps1-*.png -loop 0 ps1.gif 但imag

我想从这些.png图像制作一个动画gif:

我使用以下命令执行此操作:

convert -layers OptimizePlus -delay 25x100 ps1-*.png -loop 0 ps1.gif
它成功制作了一个动画gif,但是,输出的图像质量非常低,并且比输入的图像小:

经过一些搜索,我得到了高质量的

convert -layers OptimizePlus -delay 25x100 -quality 99 ps1-*.png -loop 0 ps1.gif

但imagemagick似乎忽略了该参数。

问题在于,您的源PNG具有GIF不支持的alpha通道。所以你必须先从你的源图像开始。由于要处理多个源图像,因此不能使用
-flant
方法。对于较新的ImageMagick版本,以下功能应能正常工作:

convert -background white -alpha remove -layers OptimizePlus -delay 25x100 ps1-*.png -loop 0 ps1.gif
如果您的ImageMagick版本早于6.7.5,您可以尝试:

convert -bordercolor white -border 0 -layers OptimizePlus -delay 25x100 ps1-*.png -loop 0 ps1.gif
使用后一个命令,我得到了以下结果:


GIF确实支持透明度。问题中发布的结果GIF是透明的,但GIF只支持完全透明的像素,不支持alpha通道。这就是为什么会有锯齿状的边缘。但是仍然有很多透明的GIF,人们实现这一点的常用方法是只将半透明像素放置在白色背景上,这样在大多数情况下边缘看起来就不会出现锯齿。当导出GIF时,Photoshop中有一个边框蒙版选项,但我还没有找到一个适合imagemagick的好方法。