Imagemagick convert命令:设置最后一帧的延迟时间

Zha*_*o_L 5 imagemagick

我有一些名为'_tmp*.png'的.png文件,我希望通过带有imagemagick的convert命令将它们转换为gif文件.所以我可以使用

convert -delay 20 _tmp*.png result.gif
Run Code Online (Sandbox Code Playgroud)

但是我希望最后一帧在屏幕上保持一段时间,以便人们可以更清楚地看到动画的结尾.说,我希望最后一帧持续3秒,同时保持其他帧的延迟时间不变.我研究了convert命令的文档,但似乎没有这样的选择.

那么如何使用convert命令执行此操作?

Mar*_*ell 11

你可以这样做:

convert -delay 40 {1..9}.png -delay 300 10.png -delay 40 {11..14}.png animated.gif 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

基本上,您可以在想要影响的图像之前设置延迟,并在您更改之前保持设置.

如果你想设置一个可变延迟,那么第一个(即黑色在这里)和最后一个帧(即黄色在这里)显示的时间更长,你可以这样做:

convert -size 300x200 xc:black xc:red xc:lime xc:blue xc:cyan xc:magenta xc:yellow -set delay '%[fx:t==(n-1) || t==0 ? 400 : 40]' result.gif
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 在您的情况下,您还可以使用“convert -delay 40 *.png -delay 2960 12.png logo.gif”。 (2认同)