ImageMagick - 调整至最大宽度

18

我想把一张图片的尺寸缩放到最大的宽度。所以我不关心图片的高度,我只想将其始终调整为特定的宽度。

我确定之前做过这件事情,但现在我忘记了如何操作。

4个回答

37

看起来这就是它的实现方式,注意宽度是第一个参数。

convert -resize '100' image.png

如果还有其他人想知道高度,可以这样做:

convert -resize 'x100' image.png

来源: http://www.imagemagick.org/script/command-line-processing.php

编辑(2014年11月):请注意,在最新版本的ImageMagick中,根据Kevin Labécot的评论,您不能再在值周围使用引号。


6
请注意,如果您想要调整一组图片的大小(而不是创建新文件),可以使用mogrify命令代替convert - Eli
3
似乎现在不再允许使用引号设置大小(无效参数)。我必须删除引号,然后它就能完美地工作:convert -resize 100 image.png - Kevin Labécot
@KevinLabécot 你知道这个改变发生在哪个版本的ImageMagick中吗?如果不知道的话,你知道在旧版中是否可以不用引号来完成它吗? - Brett
@Brett 我不知道,抱歉。 - Kevin Labécot

7
你的问题存在歧义。你的标题要求将图像调整为最大宽度,但是接下来似乎又说想将图像调整为特定宽度。
如果你想将某个东西调整到最大宽度为600px(即,任何宽度小于600px的图像都不受影响),使用以下代码:
convert original_image.jpg -resize 600x\> result_image.jpg

或者,直接修改原始图像:

mogrify  -resize 600x\> original_image.jpg

如果你想要最大高度而不是最大宽度:

convert original_image.jpg -resize x600\> result_image.jpg

3

你只是在追求数学来计算正确的宽高比吗?

$new_width = 400; // config
$image_width = 480; // loaded from image
$image_height = 786; // loaded from image
$new_height = $new_width * ($image_height / $image_width);
echo "$image_width x $image_height becomes $new_width x $new_height";

2
兄弟,它应该看起来像这样: echo $image_width." x ".$image_height." 变成 ".$new_width." x ".$new_height; - Dawid Sajdak
2
双引号解析 PHP 变量 - Scuzzy
我大部分时间都使用Smarty :3 - Scuzzy
@scuzzy 不,我是在追寻旗标以便在命令中使用。不过还是谢谢你。 - Brett

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接