以下命令将较大的尺寸调整为256:
convert -resize 256x256 in.jpg out.jpg
例如,如果in.jpg
为1024x512,则会将其大小调整为256x128。
是否可以使用ImageMagick convert
将较小的尺寸调整为256(同时保持纵横比)? (我需要512x256)
如果没有,还有其他简单的命令行解决方案吗?
答案 0 :(得分:2)
也许我在评论中建议的命令会起作用,即
convert in.jpg -resize x256 out.jpg
或者,如果您确实想要识别较小的维度并明确调整大小,那么这应该可以解决问题
#!/bin/bash
image=$1
cmd="x256"
[ $(identify -format "%[fx:w<h?1:0]" "$image") -eq 1 ] && cmd="256x"
convert "$image" -resize $cmd out.jpg
我预设命令在第3行按高度调整大小。然后我要求ImageMagick输出1
如果图像高于宽,如果是,我将更改resize命令以按宽度调整大小。然后,最后,我做了实际调整大小。您可以通过各种方式重新编写脚本以缩短脚本,或将其保持明确。
E.g。
if [ $(identify -format "%[fx:w<h?1:0]" in.jpg) -eq 1 ]; then
convert in.jpg -resize x256 out.jpg;
else
convert in.jpg -resize 256x out.jpg;
fi
答案 1 :(得分:1)
fill area flag ^似乎完全符合您的要求:
convert -resize 256x256^ in.jpg out.jpg
如果您使用的是Windows:
填充区域标志(&#39; ^&#39;标志)是Window批处理脚本中的特殊字符,您需要通过加倍来转义该字符。例如&#39; ^^&#39;,或者它不起作用。
这仅适用于ImageMagick 6.3.8-3及更高版本。对于旧版本,请使用this trick。