【问题标题】:ImageMagick : wrong frame order GIFImageMagick:错误的帧顺序 GIF
【发布时间】:2017-08-16 23:12:48
【问题描述】:

我正在尝试使用从 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... 等顺序创建 GIF。

我对 ImageMagick 不是很熟悉,阅读帮助页面并没有真正的帮助:/

有人看到解决方案了吗?

谢谢

【问题讨论】:

    标签: imagemagick imagemagick-convert scilab


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      我已经尝试了第一个选项,但第二个选项不起作用,非常感谢。

      不过,我不确定是否了解正在发生的事情。 我真的不明白第一行以及为什么 IM 现在能够以良好的顺序读取帧。

      我的猜测是 .txt 文件按创建时间的顺序存储帧,并且当 IM 从 .txt 文件读取时,它会读取创建时间而不是名称以找到好的顺序。是这样吗?

      还是非常感谢:)

      【讨论】:

        猜你喜欢
        • 2016-06-07
        • 2021-11-23
        • 2012-11-25
        • 2013-12-30
        • 2021-11-19
        • 1970-01-01
        • 2012-06-17
        • 2019-06-26
        • 1970-01-01
        相关资源
        最近更新 更多