我有一个PNG。我希望将它剪裁成尽可能小的图像,同时保持画布正方形。
例如,我有一个透明背景的非方形图像:
如果我运行convert input.png -trim +repage output.png
,则会在所有方面剪裁图像:
我想要一个正方形图像,其中修剪图像的最长边是正方形的高度和宽度。例如:
我考虑过使用-gravity center -extent 512x512
- 但我并不总是知道大小应该是多少。
如何获得裁剪后图像的最长边,并根据它调整画布大小?
答案 0 :(得分:2)
您没有说出您使用的Imagemagick版本会对答案产生影响。
这是一个V7答案,你可以在V6上遵循相同的过程,但它可能会更长一些。
magick "input.png" -trim -background none -gravity center -extent %wx%w "output.png"
答案 1 :(得分:2)
这可以通过使用FX表达式设置页面几何图像来完成......
convert input.png -trim -background none \
-set page "%[fx:max(w,h)]x%[fx:max(w,h)]+%[fx:(max(w,h)-w)/2]+%[fx:(max(w,h)-h)/2]" \
-coalesce output.png
修剪输入并计算宽度或高度的最大值以确定方形的尺寸。然后,它设置几何体以将输入图像定位在正方形的中心。 “-coalesce”重新组合输入以符合画布大小和几何。
这适用于横向或纵向的图像。
要将其用作Windows命令,请将连续行反斜杠“\”更改为插入符号“^”。在Windows BAT脚本中,将单个百分号“%”设置为双精度“%%”。