ImageMagick:错误的帧顺序 GIF

ImageMagick : wrong frame order GIF

我正在尝试使用从 Scilab 导出的一些帧创建 GIF。这些帧被命名为 anim_1.gif、anim_2.gif... 等等,直到 100

我在 Windows shell 中使用这一行来创建 GIF:

convert -delay 10 -loop 0 anim_*.gif animation.gif

我的问题是,据我所知,ImageMagick 创建的 GIF 不是按数字顺序而是按顺序 1,10,100,11,12...,2,20,21... 等等

我不是很熟悉 ImageMagick,阅读帮助页面也没什么帮助:/

有人看到解决方案吗?

谢谢

默认目录列表将在 2、20 等之前显示 1、10、100 等。这是 ImageMagick 在使用通配符列表时读取它们的顺序。使用 anim_001.gif、anim_002.gif 等前导零重命名文件可以解决您的问题。查看 Scilab 手册,了解如何使用前导零保存文件。

另一种可能的方法,假设您的输入文件是根据创建时间排序的,是按 time/date 列出目录,将输出重定向到文本文件,然后让您的 "convert"命令从该列表中读取输入图像。使用“@”和文件名将告诉 IM 您正在从文本文件中读取输入图像列表。你可以尝试这样的事情...

dir /o:d /b anim_*.gif > tmp.txt
convert -delay 10 -loop 0 @tmp.txt animation.gif

我已经尝试了第一个选项,但没有用,但是第二个可以,非常感谢。

虽然我不太确定了解发生了什么。 我不太明白第一行以及为什么 IM 现在能够按良好顺序读取框架。

我的猜测是 .txt 文件按创建时间的顺序存储帧,并且当 IM 从 .txt 文件中读取时,它以某种方式读取创建时间而不是名称来找到正确的顺序。是吗?

非常感谢:)