PHP GD:调整大小的质量差?

Kar*_*rem 6 php

我不喜欢我出来的调整大小的图像,

imagecopyresized($resized_img, $new_img, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

ImageJpeg ($resized_img,"$path_thumbs/$rand_name.$file_ext", 100);
Run Code Online (Sandbox Code Playgroud)

我在ImageJpeg中添加了100,因为我希望提高质量,但它没有变得更好.

如何提高调整大小的图像/缩略图的质量

Mat*_*son 26

请尝试使用imagecopyresampled.这会做插值,这将使事情看起来更好.

  • 在创建$ new_img时,还要确保使用imagecreatetruecolor() (3认同)

Mau*_*lla 8

从PHP 5.5开始,您可以使用imagesetinterpolation来确定在转换期间插入图像的方式(通常是缩放和重新采样,还有旋转等).

http://php.net/manual/en/function.imagesetinterpolation.php

对于图像下采样,您可能希望使用IMG_SINC算法,它往往会给出更清晰的结果.也适合轮换.

对于上采样,IMG_BICUBIC_FIXED,IMG_GENERALIZED_CUBIC和IMG_QUADRATIC可能会提供更好的结果.最终你必须测试它们:尽快在新创建的图像资源上设置此选项,在保存jpeg时将其与高质量标志结合使用,并且在使用GD时你应该完全没有工件.