我收到了一张尺寸未知的照片。我想缩小它以使其适合 640x480或480x640,保留纵横比。我希望图像缩小最小量(例如,结果应该是适合640x480或480x640的最大尺寸)。
例如,如果我有800x800图像,它应缩小到480x480。如果我有500x1000图像,它应缩小到320x640。同样,1000x500应该变成640x320。
我可以在一个命令中在ImageMagick中执行此操作吗?不应进行裁剪,并应保留原始图像的纵横比。谢谢!
答案 0 :(得分:1)
在不裁剪和保留纵横比的情况下调整图像大小很容易,但我认为您无法在/或单个命令中实现。
从geometry specification docs开始,将超大图片的尺寸调整为640x480非常简单:
convert input.png -resize 640x480> output.png
只有在必要时才会调整大小,不会裁剪,并且会保留宽高比。
根据您输入的图像,您可以使用区域运算符:
convert input.png -resize $((640*480))@ output.png
但只有当所有输入图像都具有4/3或3/4宽高比时,这才有效。
我认为你最好的选择是一个简短的shell脚本:
wider_than_tall=`identify -format %w/%h input.png`
if (( $wider_than_tall )); then
convert input.png -resize 640x480> output.png
else
convert input.png -resize 480x640> output.png
fi