首页 > 解决方案 > 使用 ImageMagick 在多个图像之间转换

问题描述

我是 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

我对上述代码的假设是,将由 5 张图像的幻灯片创建一个 gif,每个图像之间都有淡入淡出过渡。但这不是由此产生的行为。

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

有人可以让我知道我对 ImageMagic 的工作方式有什么误解!谢谢!

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

标签: imageimage-processingimagemagick

解决方案


我不确定您要如何处理延迟。或许你可以解释一下。但它并不统一。许多动画 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


在此处输入图像描述

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

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


在此处输入图像描述


推荐阅读