如何在ImageMagick中对输入的PNG文件进行排序

时间:2015-06-18 10:49:58

标签: bash imagemagick

我正在使用以下命令制作动画GIF文件:

convert -delay 10 -loop 0 *.png animated.gif

但是,问题按* .png。

的顺序发生

我的PNG文件类似于1.png,2.png,... 100.png。

在生成的动画GIF中,帧的顺序如下:1.png,10。png,100.png,2.png ...

我想在结果GIF中快照的顺序如1,2,3 ... 100。

4 个答案:

答案 0 :(得分:5)

请尝试sort

$ ls | sort -V
1.png
2.png
10.png
100.png

最终:

convert -delay 10 -loop 0 $(ls *.png | sort -V) animated.gif

答案 1 :(得分:1)

这个小脚本将使用前导零为您重命名文件 - 首先在文件的COPY上尝试:

#!/bin/bash
for i in {1..1000}; do
   [ -f "$i.jpg" ] && echo mv "$i.jpg" $(printf "%04d.jpg" $i)
done

它查找从1.jpg到1000.jpg的JPEG文件,如果有的话,它会用最多3个前导零重命名,直到数字部分为4位数。

如果将其保存为renamer,则会运行

chmod +x renamer    # just do this once to make it executable
./renamer           # do this any time you want the whole directory of JPEGs renamed

如果您看到并喜欢它将要执行的操作,请删除单词echo,然后再次运行。

示例输出

mv 1.jpg 0001.jpg
mv 99.jpg 0099.jpg
mv 102.jpg 0102.jpg

答案 2 :(得分:0)

使用前导零重命名,例如:

001.png, 002.png, 003.png,......099.png,100.png.

它会对你有用

答案 3 :(得分:0)

glob运算符(*)通过比较文本对结果列表进行排序。因此,将文件1.png,2.png ...重命名为001.png,002.png应该可以正常工作。