我正在使用PHP Imagick来处理图像。
我有两种用例:“resize”和“crop”。
在“resize”中,如果原始图像的尺寸小于给定的宽度和高度,我不想让Imagick将其放大,而是希望它只返回原始尺寸。
然而,正如PHP文档所说,从版本3开始(我使用的是版本6+),Imagick的行为已经发生了变化,它会始终对图像进行缩放。
注意:在Imagick 3.0.0中,“bestfit”参数的行为发生了变化。 在此版本之前,给定尺寸400x400,尺寸为200x150的图像将保持不变。 在Imagick 3.0.0及更高版本中,图像将缩放到尺寸400x300,因为这是给定尺寸的“最佳匹配”。 如果使用bestfit参数,则必须同时给出宽度和高度。
因此,在我的情况下,对于给定尺寸400x400,尺寸为200x150的图像应返回200x150的图像而不是400x300的图像。 对于给定尺寸100x100,尺寸为200x150的图像应返回100x75的图像(即应该进行缩小)。
我尝试了thumbnailImage(),resizeImage()和scaleImage(),但没有成功。 如果我将bestfit设置为false,则会进行裁剪,这不是我想要的resize。
是否有办法用Imagick实现这个呢?
convert -version
的输出。 - Kurt Pfeifle