ImageMagick失去宽高比

时间:2013-06-21 22:24:01

标签: resize imagemagick aspect-ratio

很简单,我有一个脚本在我的照片上调用imagemagick。

原始图片是320 x 444,我想创建几个缩小版本,但保持相同的宽高比

我使用

调用imagemagick
convert oldfile.png -resize 290x newfile.png

我想将其缩放到我的设定宽度,但高度相应地缩放。

我在3个单独的命令中执行80x,160x和290x。

最小的2个产生具有相同原始宽高比的图像,而290x则没有。

它产生的图像大小为290 x 402

我不知道为什么那个不能保持纵横比,而另外2个尺寸维持它。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我认为第三个命令中的问题是请求的大小本身:

  1. 在第一个命令中,两个维度除以4:320/4=80444/4=111
  2. 在第二个命令中,两个维度除以2:320/2=160444/2=222
  3. 444和320只有两个公约数:2和4.你已经在前两个命令中使用了这些除数,所以任何其他(宽度,高度)对都会给你一个略微不同的宽高比:它是不可能获得的相同的确切长宽比固定290。

    事实上,当您的原始图片的宽高比为1.3875时,使用290x403的图片,您将获得1,389655172的宽高比,并使用290x402的图片获得1,386206897比率:固定290没有其他维度的值可以为您提供所需的宽高比。

    一般情况下,Imagemagick总是尝试保留图像的宽高比,您可以在Imagemagick文档中阅读:

      

    调整大小运算符的参数是图像所在的区域   应该适合。这个区域不是图像的最终尺寸而是   图像的最大尺寸。 那是因为IM试图保留   图像的宽高比比最终的宽高比(除非'!'标志是   给定),但最终尺寸中至少应有一个(如果不是两个)   匹配给定图像的参数。所以让我说清楚......调整大小是合适的   将图像转换为请求的大小。它没有填写,请求的框   大小

    有关详细信息,请参阅here