0

我得到了一个未知大小的图像。我想缩小它,使其适合640x480480x640,同时保持纵横比。我希望图像缩小最小量(例如,结果应该是适合 640x480 或 480x640 的最大尺寸)。

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

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

4

1 回答 1

1

在不裁剪和保留纵横比的情况下调整图像大小很容易,但我认为您无法在单个命令中实现您的非此即彼。

几何规范文档中,将超大图像调整为 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
于 2012-06-27T03:20:10.843 回答