在 graphicsmagick 中,如何在大量文件上指定输出文件?

Mat*_*Kim 5 graphicsmagick

我想转换一组文件,但不覆盖现有文件。如何使用 mogrify 指定最终文件格式?例如firstpic.png -> firstpic-thumbnail.png、secondpic.png -> secondpic-thumbnail.png等。

gm mogrify -size 150x150 *.png -resize 150x150 +profile "*" "%f-thumbnail.png"

有没有办法做到这一点?

小智 5

我不知道是否有办法指定 mogrify 的输出文件格式,但我会使用convert简单的 bash 循环来代替:

for f in *.jpg; 
do 
    convert "$f" -resize 150x150 +profile "*" "${f%.jpg}-thumbnail.jpg"; 
done;
Run Code Online (Sandbox Code Playgroud)

或者,如果您确实想使用,mogrify可以使用-output-directory此处详细介绍此选项)将新文件放入单独的目录中,然后进行重命名:

mkdir tmp;
gm mogrify -output-directory tmp -size 150x150  -resize 150x150 +profile "" "*.jpg";
for f in tmp/*.jpg; 
do 
    mv "$f" "${f%.jpg}-thumbnail.jpg"; 
done;
mv tmp/* .;
rm -rf tmp;
Run Code Online (Sandbox Code Playgroud)

我更喜欢第一种方法;)