使用带有过渡的 ImageMagick 在多个图像之间进行过渡

use*_*312 0 image imagemagick image-processing

我是 ImageMagick 的新手,天真地希望找到一个命令,可以运行该命令来从许多 jpeg 图像创建幻灯片,并在所有图像之间具有相同的淡入淡出过渡。

我查看了许多教程/论坛,但只能找到 2 个图像之间的过渡示例,而不是 3、4 或 5 个图像等。

我有 5 张图像(01.jspeg、02.jpeg、03.jpeg...等),我想将它们转换为幻灯片。我希望幻灯片在每个图像之间具有相同的淡入淡出过渡。我尝试了下面的命令行,但它的行为不符合预期!

convert  01.jpeg 02.jpeg 03.jpeg 04.jpeg 05.jpeg -loop 0 morph 9 -set delay "%[fx:(t>0&&t<n-1)?10:320]" output.gif
Run Code Online (Sandbox Code Playgroud)

我对上述代码的假设是,将创建 5 个图像的幻灯片放映 gif,每个图像之间有淡入淡出过渡。但这不是最终的行为。

我是一位经验丰富的开发人员,但没有 ImageMagick 的经验。

有人可以告诉我我对 ImageMagic 的工作方式有什么误解吗?谢谢!

我假设提供的变形参数适用于所有转换......这不正确吗?

fmw*_*w42 6

我不确定你想用延迟做什么。也许你可以解释一下。但它并不统一。许多 gif 动画查看器无法处理更改的延迟。它们在给定延迟的情况下效果最好。

这对我来说效果很好,可以使用 ImageMagick 6.9.10.34 Q16 Mac OSX 进行统一延迟并在 Safari 中查看它。

图片:

在此输入图像描述

在此输入图像描述

在此输入图像描述

convert -delay 50 lena.jpg mandril3.jpg zelda1.jpg -morph 9 -loop 0 test.gif
Run Code Online (Sandbox Code Playgroud)


在此输入图像描述

这就是我从你的延迟中得到的结果,它开始得很慢,然后很快结束。请注意,我将 -set 延迟放在读取输入之后和 -morph 之前。这在你的命令中按照你想要的方式工作吗?

convert lena.jpg mandril3.jpg zelda1.jpg -set delay "%[fx:(t>0&&t<n-1)?10:320]" -morph 9 -loop 0 test2.gif
Run Code Online (Sandbox Code Playgroud)


在此输入图像描述