![将透明图像序列转换为 gif](https://linux22.com/image/1117208/%E5%B0%86%E9%80%8F%E6%98%8E%E5%9B%BE%E5%83%8F%E5%BA%8F%E5%88%97%E8%BD%AC%E6%8D%A2%E4%B8%BA%20gif.png)
我想将图像序列转换为 gif 动画,我正在使用这个:
convert -delay 100 -loop 0 image*.jpg animation.gif
问题是,对于透明图像,我可以看到动画下的其他图像。为什么?
例如,有以下两张图片:
在生成的 gif 动画中,显示的第一幅图像是“A”,第二幅图像(而不是“B”)是
我真的不知道这里发生了什么,我错过了什么?
答案1
如果使用该-dispose Background
选项,当向画布添加框架时,它将在下一个图像叠加之前清除背景。例如:
convert -delay 100 -dispose Background *.png anim.gif
更多信息可以参见动画基础页面ImageMagick 文档。
答案2
GIF 没有透明层。图像必须都具有相同的背景颜色,例如青色,并且该颜色在图像中指定为转换为透明的颜色。您可以使用选项将该颜色传递给转换-transparent-color
。
答案3
对我来说这个工作正确:
convert -delay 100 -dispose 3 -loop 0 image*.jpg animation.gif