Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用imagemagick调整图像大小并保持质量的替代方法_Php_Imagemagick_Image Manipulation - Fatal编程技术网

Php 使用imagemagick调整图像大小并保持质量的替代方法

Php 使用imagemagick调整图像大小并保持质量的替代方法,php,imagemagick,image-manipulation,Php,Imagemagick,Image Manipulation,我有以下代码,它使用Imagemagick调整PNG图像的大小 $im = new imagick("$file"); $im->thumbnailImage($newwidth, $newheight); $im->writeImage($output); 然而,据我所知,这会产生图像,这些图像在使用thumbnailimage方法时尽可能小 理想情况下,我希望调整图像大小并尽可能保持输出图像的质量,在这种情况下,文件大小对我来说并不是一个真正的问题。有没有其他方法可以让我调整P

我有以下代码,它使用Imagemagick调整PNG图像的大小

$im = new imagick("$file");
$im->thumbnailImage($newwidth, $newheight);
$im->writeImage($output);
然而,据我所知,这会产生图像,这些图像在使用thumbnailimage方法时尽可能小


理想情况下,我希望调整图像大小并尽可能保持输出图像的质量,在这种情况下,文件大小对我来说并不是一个真正的问题。有没有其他方法可以让我调整PNG的大小并尽可能保持高质量?

缩小图像会降低图像质量。但是,可以使用插值模拟该质量


PHP的GD扩展确实附带了imagecopyresampled函数,但是它的质量不是最好的。然而,在[comments]中,我确实发现了一个有用的imagecopyresampledbicubic函数,它的质量应该比本机函数好得多。显然值得一试。

缩略图与“调整大小”相同,只是它去掉了所有EXIF数据,使文件大小变小

您可以添加$im->setCompressionQuality 100; 您可以尝试在调整大小时使用不同的过滤器,但这只在某些图像上效果更好 添加一些锐化$im->unsharpMaskImage0,0.5,1,0.05