ImageMagick无法正常转换

ImageMagick无法正常转换,imagemagick,imagemagick-convert,Imagemagick,Imagemagick Convert,我有100张名为img0.jpg到img99.jpg的图片要转换成pdf文件。问题是 convert img*.jpg out.pdf 按1、11、2、22等顺序添加页面。imagemagick中的顺序是如何定义的?或者用零填充数字对页面进行编号,如下所示,以便imagemagick按顺序进行: img000.jpg img001.jpg img002.jpg ... img098.jpg 那么您原来的命令应该可以工作了 或者,让bash按顺序枚举文件,并将名称输入到ImageMagick

我有100张名为img0.jpg到img99.jpg的图片要转换成pdf文件。问题是

convert img*.jpg out.pdf

按1、11、2、22等顺序添加页面。imagemagick中的顺序是如何定义的?

或者用零填充数字对页面进行编号,如下所示,以便imagemagick按顺序进行:

img000.jpg
img001.jpg
img002.jpg
...
img098.jpg
那么您原来的命令应该可以工作了


或者,让
bash
按顺序枚举文件,并将名称输入到ImageMagick中,如下所示:

magick img{0..99}.jpg result.pdf
或:


或者按照上面的第一个示例重命名文件,但使用Perl
rename

rename --dry-run 's/\D//g; $_=sprintf("f-%05d.jpg",$_)' f*jpg
样本输出

'f0.jpg' would be renamed to 'f-00000.jpg'
'f1.jpg' would be renamed to 'f-00001.jpg'
'f10.jpg' would be renamed to 'f-00010.jpg'
'f11.jpg' would be renamed to 'f-00011.jpg'
'f12.jpg' would be renamed to 'f-00012.jpg'

您可能有可用的
ls-v
,在这种情况下,您可以尝试:

magick $(ls -v img*jpg) result.pdf

从目录中按字母顺序访问图像。您需要使用前导零img01、img02重命名图像。。。img99,以便按该顺序处理。顺序在imagemagick中“定义”为命令行中给出的顺序。你真正的问题应该是:“img*.jpg”是如何扩展的?shell对与模式匹配的文件使用什么顺序。(答:shell根据您的区域设置,按字典顺序包含匹配的文件名。)
magick $(ls -v img*jpg) result.pdf