【发布时间】:2015-08-11 20:10:08
【问题描述】:
我正在使用 PHP Imagick 来处理图像。
我有两个用例:“调整大小”和“裁剪”。
在“调整大小”中,如果原始图像的尺寸小于给定的宽度和高度,我不希望 Imagick 将其放大,而是希望它简单地返回原始大小.
但是,正如 PHP 文档所说,Imagick 的行为已从版本 3(我使用的是版本 6+)更改为它始终会放大图像。
注意:参数 bestfit 的行为在 Imagick 3.0.0 中发生了变化。 在此版本之前,给定尺寸 400x400 尺寸的图像 200x150 将保持不变。在 Imagick 3.0.0 及更高版本中,图像 将放大到 400x300 的大小,因为这是“最适合” 给定尺寸。如果 bestfit 参数同时使用 width 和 height 必须给出。
因此,就我而言,对于给定尺寸 400x400,尺寸为 200x150 的图像应返回 200x150 而不是 400x300 的图像。对于给定的 100x100 尺寸,尺寸为 200x150 的图像应返回 100x75 的图像(即应按比例缩小)。
我尝试了 thumbnailImage()、resizeImage() 和 scaleImage() 没有任何运气。 如果我将 bestfit 设置为 false,它会进行裁剪,这不是我想要的调整大小。
有什么方法可以用 Imagick 完成这项工作吗?
【问题讨论】:
-
"version 6+" 不是一个有用的说明来表明您的版本; "version 6.9.1-3" 将是...所以请给出
convert -version的输出。 -
我只想提一下,我的版本大于 3.0,并且我受到更改的行为的影响。以下是 convert -version 输出: 版本:ImageMagick 6.7.7-10 2014-03-06 Q16 imagemagick.org 版权所有:版权所有 (C) 1999-2012 ImageMagick Studio LLC 功能:OpenMP
-
为什么不用php.net/manual/en/imagick.getimagewidth.php编写一些完全符合您要求的代码
-
@Danack 该函数只返回图像宽度。我不知道如何用普通的 PHP 编写这个调整大小的功能(甚至不确定它是否可能),我想坚持使用 Imagick(一种要求)并且不想使用 GD。
标签: php imagemagick imagick