使用imagemagick从一个源进行多次转换

时间:2016-08-22 11:44:55

标签: imagemagick imagemagick-convert graphicsmagick

是否可以拥有一个源,并且有两种类型的处理图像具有不同的配置? (而不是两次读取源图像)?

这样的东西
convert input.jpg -resize 300 output1.jpg -resize 600 output2.jpg

1 个答案:

答案 0 :(得分:1)

当然,像这样使用中间-write,然后先做一个大的:

convert input.jpg -resize 600 -write im600.jpg -resize 300 im300.jpg

或者,如果你想重新开始每个操作:

convert input.png \
  \( +clone -resize 300 -write result300.jpg \) \
  \( +clone -resize 600 -write result600.jpg \) null:

如果使用GraphicsMagick,我不确定是否有比以下更好的方法:

#!/bin/bash
{ echo convert input.png mpr:orig; 
  echo convert mpr:orig -resize 300 result300.jpg;
  echo convert mpr:orig -resize 600 result600.jpg; } | gm batch -prompt off

这是一个略有不同的版本,只会调用convert两次:

#!/bin/bash
cat - <<EOF | gm batch -prompt off
convert input.png -write mpr:orig -resize 300 result300.jpg
convert mpr:orig -resize 600 result600.jpg
EOF