Bash 如何按顺序转换图像

Bash 如何按顺序转换图像,bash,imagemagick,imagemagick-convert,Bash,Imagemagick,Imagemagick Convert,我有一个脚本,我想把图像转换成动画GIF。唉,它们的顺序不对!提升为10,11,12…19,1,20,21。。。 在1,2,3,4中我真正需要它的地方 #!/bin/bash for i in `seq 0 22` do convert -size 99x99 xc:red -font Palatino-Bold -pointsize 66 \ -fill black -draw "text 20,55 '$i'" $i.png done convert -delay 5

我有一个脚本,我想把图像转换成动画GIF。唉,它们的顺序不对!提升为10,11,12…19,1,20,21。。。 在1,2,3,4中我真正需要它的地方

#!/bin/bash
for i in `seq 0 22`
do
 convert -size 99x99 xc:red -font Palatino-Bold -pointsize 66 \
         -fill black -draw "text 20,55 '$i'" $i.png  
done
convert -delay 50 -loop  *.png output.gif


我应该怎么做才能使gif按正确的顺序设置动画?

首先正确命名它们

"$(printf "%02d" "$i").png"
另一个解决方案:

在传递文件进行转换之前,先对文件进行数字排序

convert -delay 50 -loop  $(ls *.png | sort -n) output.gif

当我运行这一行时,imagemagick抛出某种错误:“IHDRc��N��PLTE���s���8.���` @ error/convert.c/ConvertImageCommand/1901。“如果PNG的数量为99或更少,则此操作非常有效。部分问题是我不知道用户可以选择制作多少帧。如果有100多个PNG,则此方法也会出错。因此,请根据需要将空格数设置为最大,例如
%08d