【问题标题】:ImageMagick losing aspect ratioImageMagick 失去纵横比
【发布时间】:2013-06-19 04:08:27
【问题描述】:

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

原始图像为 320 x 444,我想创建一些缩小版本但保持相同的纵横比

我使用 imagemagick 调用

convert oldfile.png -resize 290x newfile.png

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

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

最小的 2 产生具有相同原始纵横比的图像,而 290x 则不会。

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

我不知道为什么那个不能保持纵横比但其他 2 个尺寸保持它。

有什么想法吗?

【问题讨论】:

    标签: resize imagemagick aspect-ratio


    【解决方案1】:

    我认为第三条命令的问题在于请求的大小本身:

    1. 在第一个命令中,两个维度都除以 4:320/4=80444/4=111
    2. 在第二个命令中,两个维度都除以 2:320/2=160444/2=222

    444 和 320 只有两个公约数:2 和 4。您已经在前两个命令中使用了这些公约数,因此任何其他(宽度、高度)对都会给您一个稍微不同的纵横比:不可能获得相同的确切纵横比固定为 290。

    事实上,虽然您的原始图像的纵横比为1.3875,但对于 290x403 图像,您将获得1,389655172 的纵横比,而对于 290x402 图像,您将获得1,386206897 比率:固定 290 有没有其他维度的值可以为您提供所需的纵横比。

    一般来说,Imagemagick 总是试图保持图像的纵横比,正如您可以在 Imagemagick 文档中阅读的那样:

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

    更多参考请见here

    【讨论】:

    • 所以你说的是虽然它确实试图保持纵横比相同,但在最后一个例子中它不能完全匹配,但它仍然会生成一个固定宽度的图像,失去纵横比(但要尽可能接近?)
    • @binarysmacker 是的,根据 IM 文档,这就是它的工作原理
    猜你喜欢
    • 1970-01-01
    • 2013-08-24
    • 1970-01-01
    • 2012-07-14
    • 2014-06-13
    • 1970-01-01
    • 1970-01-01
    • 2012-08-25
    • 1970-01-01
    相关资源
    最近更新 更多