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

时间:2019-03-18 00:04:55

标签: image image-processing imagemagick

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

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

我有5张要转换为幻灯片显示的图像(01.jspeg,02.jpeg,03.jpeg ...等)。我希望幻灯片在每个图像之间具有相同的淡入淡出过渡。我在下面尝试了命令行,但操作不正常!

public boolean findProductOptional(String productName) {
   return orderItems
     .stream()
     .filter(Objects::nonNull)
     .map(OrderItem::getProduct)
     .filter(Objects::nonNull)
     .anyMatch(product -> productName.equals(product.getProductName()));
}

我对以上代码的假设是,将为5张图片的幻灯片创建gif,并在每张图片之间进行淡入淡出过渡。但这不是最终的行为。

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

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

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

1 个答案:

答案 0 :(得分:1)

我不确定您要如何处理延迟。也许你可以解释。但这不是统一的。许多动画gif查看器无法处理更改的延迟。在给定延迟的情况下,它们效果最好。

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

图片:

enter image description here

enter image description here

enter image description here

convert -delay 50 lena.jpg mandril3.jpg zelda1.jpg -morph 9 -loop 0 test.gif


enter image description here

这就是我从您的延迟中得到的东西,开始很慢,然后很快结束。注意,我在读取输入之后和-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


enter image description here