【问题标题】:how to make a high quality animated image with imagemagick如何使用 imagemagick 制作高质量的动画图像
【发布时间】:2014-02-08 07:59:43
【问题描述】:

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

我用这个命令来做:

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

它成功地制作了一个动画 gif,但是输出的质量非常低并且比输入图像小:

经过一番搜索,我得到了 -quality

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

但似乎 imagemagick 只是忽略了参数。

【问题讨论】:

    标签: imagemagick


    【解决方案1】:

    问题在于您的源 PNG 具有 GIF 不支持的 Alpha 通道。所以你必须首先从源图像中remove transparency。由于您要处理多个源图像,因此不能使用 -flatten 方法。对于较新的 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 是透明的。
    • @DreaminginCode 但是 GIF 只支持完全透明的像素,没有 alpha 通道。这就是你得到锯齿状边缘的原因。
    • 但是仍然有很多透明的 GIF,人们实现它的一种常见方法是实际上只将半透明像素放在白色背景上,这样在大多数情况下边缘似乎不是别名。导出 GIF 时 Photoshop 中有一个边框遮罩选项,但我还没有找到 imagemagick 的好方法。
    猜你喜欢
    • 2018-06-30
    • 2015-04-12
    • 1970-01-01
    • 2019-12-13
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 2013-01-25
    • 2011-12-28
    相关资源
    最近更新 更多