目前,我正在使用多个imagemagick命令来修剪,调整大小(如果宽度或高度> 5000)和方形。是否可以组合成1个单一命令?
第1步:转换input_file.tif
-fuzz 1%-trim output_file_trim.tif
第2步:使用output_file_trim.tif
第3步:从图像宽度和高度获取最大尺寸
步骤4:如果最大尺寸> 5000然后
转换output_file_trim.tif
-resize 5000x5000 output_file_trim.tif
第5步:最后,完成图像转换
转换output_file_trim.tif
-flatten -gravity center -background white -extent" $ max_dimension" x" $ max_dimension" -format jpg output_file_final.jpg
@fmw42
。以下单个命令是否正确以实现此要求:
convert `input_file.tif` -fuzz 1% -trim +repage \( +clone -rotate 90 +clone -mosaic +level-colors white \) +swap -flatten -gravity center -extent 105x105% -composite -format jpg `output_file_final.jpg`
答案 0 :(得分:1)
此命令将读取输入图像并对其进行修剪。然后它调整大小以适应5000x5000的盒子,如果它大于5000x5000。然后它将画布重新定尺寸为正方形,两个尺寸都是宽度或高度的较大值。通过将图像放置在具有白色背景的方形画布的中心来完成。
convert input_file.tif -fuzz 1% -trim +repage -resize "5000x5000>" \
-set option:distort:viewport "%[fx:max(w,h)]x%[fx:max(w,h)]" -virtual-pixel white \
-distort affine "0,0 %[fx:h>w?(h-w)/2:0],%[fx:w>h?(w-h)/2:0]" \
output_file_final.jpg
答案 1 :(得分:0)
将您的5个步骤放入一个命令只能在IM 7中完成,如下所示(unix语法):
magick -quiet input_file.tif -fuzz 1% -trim +repage \
-resize "5000>" \
-flatten -gravity center -background white \
-extent "%[fx:max(w,h)>5000?5000:max(w,h)]x%[fx:max(w,h)>5000?5000:max(w,h)]" \
output_file_final.jpg
在IM 6中,您需要在两个命令中执行此操作。首先找到max(w,h)和500中较大的一个,然后从第一步中保存临时图像。然后执行另一个命令,使用该暗淡
完成它dim=$(convert -quiet input_file.tif -fuzz 1% -trim +repage \
+write output_file_final.jpg -format "%[fx:max(w,h)>5000?5000:max(w,h)]" info:)
convert output_file_final.jpg -resize "5000>" \
-flatten -gravity center -background white \
-extent ${dim}x${dim} output_file_final.jpg
我不明白你的最后一个命令。它与您概述的步骤无关。