ImageMagick调整大小为抽象矩形

时间:2012-06-26 22:29:09

标签: imagemagick

我收到了一张尺寸未知的照片。我想缩小它以使其适合 640x480或480x640,保留纵横比。我希望图像缩小最小量(例如,结果应该是适合640x480或480x640的最大尺寸)。

例如,如果我有800x800图像,它应缩小到480x480。如果我有500x1000图像,它应缩小到320x640。同样,1000x500应该变成640x320。

我可以在一个命令中在ImageMagick中执行此操作吗?不应进行裁剪,并应保留原始图像的纵横比。谢谢!

1 个答案:

答案 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