我得到了一个未知大小的图像。我想缩小它,使其适合640x480或480x640,同时保持纵横比。我希望图像缩小最小量(例如,结果应该是适合 640x480 或 480x640 的最大尺寸)。
例如,如果我有一个 800x800 的图像,它应该缩小到 480x480。如果我有一个 500x1000 的图像,它应该缩小到 320x640。同样,1000x500 应该变成 640x320。
我可以在一个命令中在 ImageMagick 中执行此操作吗?不应发生裁剪,并且应保留原始图像的纵横比。谢谢!
我得到了一个未知大小的图像。我想缩小它,使其适合640x480或480x640,同时保持纵横比。我希望图像缩小最小量(例如,结果应该是适合 640x480 或 480x640 的最大尺寸)。
例如,如果我有一个 800x800 的图像,它应该缩小到 480x480。如果我有一个 500x1000 的图像,它应该缩小到 320x640。同样,1000x500 应该变成 640x320。
我可以在一个命令中在 ImageMagick 中执行此操作吗?不应发生裁剪,并且应保留原始图像的纵横比。谢谢!
在不裁剪和保留纵横比的情况下调整图像大小很容易,但我认为您无法在单个命令中实现您的非此即彼。
从几何规范文档中,将超大图像调整为 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