如何将给定文件夹中的所有文件(格式不同)转换为不同的文件类型

时间:2013-03-09 20:49:49

标签: imagemagick imagemagick-convert

我有一个包含许多不同类型图像的文件夹(png,jpg,jpeg,bmp,pdf),我想使用imagemagick将它们全部转换为png(例如)。

是否有一个命令可以执行此操作?如果没有,我该怎么做呢?

感谢。

3 个答案:

答案 0 :(得分:37)

尝试mogrify命令:

mogrify -format png *.*

但要小心。如果没有-format选项,mogrify会覆盖原始图像。请务必阅读documentation

答案 1 :(得分:22)

虽然mogrify似乎可以完成这项工作,但我想向您展示如何使用来自ImageMagick的convert多个命令来完成此操作。

我认为多个命令更好,因为文件类型的数量应该非常小,您可以根据需要更好地调整它:

此命令:

for file in *.xbm; do convert $file "`basename $file .xbm`.png"; done

会将所有.xbm个文件转换为.png,而不会触及xbm文件。

然后你可以移动所有“转换”的文件:

mkdir converted
for file in *.xbm; do mv $file converted/; done

答案 2 :(得分:1)

您可以使用ImageMagick包中的convert命令,例如

find . -maxdepth 1 \( -iname \*.png -o -iname \*.jpg -o -iname \*.jpeg -o -iname \*.bmp -o -iname \*.pdf \) -exec convert -verbose "{}" "DEST_DIR/{}.png" \;

或者,如果您已将所有文件放在同一目录中,请尝试以下更简单的方法:

convert '*.*' converted_%04d.png

类似:How can I scale all images in a folder to the same width?