我正在使用PHP来操纵图像。
我有两个用例:“调整大小”和“裁剪”。
在“调整大小”中,如果原始图像的尺寸小于给定的宽度和高度,我不希望 Imagick对其进行缩放,而是希望它只返回原来的大小。
但是,正如PHP文档所述,Imagick的行为已经从version 3(我使用的是6+版本)改变了,它总是会放大图像。
注意:在Imagick 3.0.0中,参数最佳的行为发生了变化。在此版本之前,给定维度400x400,维度200x150的图像将保持不变。在Imagick 3.0.0及更高版本中,图像将被缩放到400x300大小,因为这是给定维度的“最佳匹配”。如果采用最佳拟合参数,则必须同时给出宽度和高度。
因此,在我的例子中,对于给定的维度400x400,维度200x150的图像应该返回200x150,而不是400x300。对于给定的维度100x100,维度200x150的图像应该返回100x75的映像(即应该进行缩小)。
我尝试了thumbnailImage()、resizeImage()和scaleImage(),没有任何结果。如果我把最好的设置为false,它会进行裁剪,这不是我希望通过调整大小来实现的。
有没有办法用Imagick完成这件事?
发布于 2016-01-15 17:53:09
试着这样做:
$max_width = 1200;
$max_height = 800;
$im = new Imagick($path_to_image);
$im->resizeImage(
min($im->getImageWidth(), $max_width),
min($im->getImageHeight(), $max_height),
imagick::FILTER_CATROM,
1,
true
);发布于 2015-05-29 10:08:00
使用以下命令:
convert input.img -resize 400x400\> output.img请注意使用附加的\>修饰符提供想要的维度的具体方法:它告诉转换过程只调整大于400x400像素的图像的大小。图片是较小的停留未触及。
https://stackoverflow.com/questions/30521451
复制相似问题