ImageMagick 附加图像序列文件名

ImageMagick 附加图像序列文件名

我正在使用动画工具 Synfig 导出一系列 .png 文件。这些文件的格式如下:C1.0000.png、C1.0001.png、C1.0002.png 等等。

我想将它们转换为精灵表(即将它们全部附加在一起),但是,我还需要相同的动画但要翻转。

这就是我遇到的问题。使用以下语法时:

 convert C1.*.png -flop C1right.*.png

我没有得到与之前类似的序列。 (C1right.0000.png、C1right.0001.png 等),而是 C1right.-0.png、C1right.-1.png 等。

这本身并不是那么糟糕,但是因为 +append 命令按字母顺序而不是按数字顺序对图像进行排序,所以我最终得到的序列不是图像 2 跟在图像 1 之后,而是图像 11 跟在图像 1 之后,而图像 2 最终排在 19 之后。

有没有办法保留原始文件名结构?或者有没有办法确保 +append 按数字对文件进行排序?

答案1

仅使用 glob 模式是不行的。您必须循环遍历所有文件:

for f in C1*.png ;do convert $f -flop $(echo $f | sed 's/\./right./') ;done

这将像这样执行:

convert C1.01000.png -flop C1right.01000.png
convert C1.01001.png -flop C1right.01001.png
convert C1.01002.png -flop C1right.01002.png

答案2

使用格式说明符%04d0表示左边填充零,4d表示小数点后 4 位):

convert C1.*.png -flop C1right.%04d.png

生成的名称将是

C1right.0000.png
C1right.0001.png
C1right.0002.png

笔记:在 ImageMagick 版本 7+ 中,只需将convert命令替换为magick

相关内容