ImageMagick 在 gif->png 转换中对输出文件名进行零填充

ImageMagick 在 gif->png 转换中对输出文件名进行零填充

我用过这个很好的答案将 .gif 转换为其组成帧:

convert foo.gif foo.png

我的目的是在命令行上对帧进行一些编辑,然后将它们组合回输出 gif;不幸的是,第一步的输出文件名没有正确地用零填充,所以我们只剩下:

foo-frame-0.png
foo-frame-1.png
# ...
foo-frame-10.png

在尝试进行干净循环时,它们以错误的顺序出现:

for FILE in foo-frame-*.png; do echo $F; done
# foo-frame-0.png
# foo-frame-10.png
# foo-frame-1.png
# foo-frame-2.png
# ...
# foo-frame-9.png

解决方法事后重命名文件的情况有后缀的地方看起来相当丑陋。

针对这种情况的一个解决方法是稍微有点黑客但基本上可以:

for FILE in foo-frame-[0-9].png foo-frame-[0-9][0-9]; do echo $F; done

(即先合并一位数列表,然后再合并两位数列表)

但是,我不禁想知道是否有任何方法可以直接从中获取此输出convert?我在页面上没有看到任何内容man

一种可接受的替代方案是“循环” gif 的帧,对每个帧执行相同的操作。我尝试了一个简单的版本,convert但它将所有帧合并为一个巨大的单帧。

相关内容