ImageMagick转换调整尺寸较小的尺寸?

时间:2015-03-24 06:22:36

标签: imagemagick

以下命令将较大的尺寸调整为256:

convert -resize 256x256 in.jpg out.jpg

例如,如果in.jpg为1024x512,则会将其大小调整为256x128。

是否可以使用ImageMagick convert将较小的尺寸调整为256(同时保持纵横比)? (我需要512x256)

如果没有,还有其他简单的命令行解决方案吗?

2 个答案:

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