将透明图像序列转换为 gif

将透明图像序列转换为 gif

我想将图像序列转换为 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

相关内容