我正在使用可在此处找到的裁剪工具:https://github.com/sconsult/croppic
我已根据自己的需要对其进行了修改 - 对代码数量道歉,但我不知道可能导致问题的哪一部分。
我在5 - 6个月前首次实现了这个代码,它运行得很完美。 85%的质量适合每个测试的图像。 代码自从它的原始实现以来没有改变,但是图像显然非常模糊 - 它们只是看起来不再好看。我使用之前上传的相同图片进行了测试,并且它们看起来与最初上传和裁剪的图片看起来不一样。
我所知道的唯一可能影响此事件的重大事件是升级我们的PHP
版本。我认为在实施时它曾经是5.3xx
或类似的,现在我们正在运行5.6.18
。可能导致模糊的原因是什么?来自5.6.18
的{{1}}中是否存在可归因于此的显着变化?
请注意我已尝试将 5.3
更改为100 。不幸的是,所有这些都会增加文件大小。发生同样的模糊。
$jpeg_quality = 85;
更新
以下是2个示例图像,第一个是调整大小的版本(质量差,但设置为100%jpeg质量输出),第二个是原始图像。看看墙上的石头,质量的降低非常明显。
裁剪
原始
答案 0 :(得分:1)
这里的问题是imagerotate()
功能。即使没有应用旋转,我的脚本也被告知要旋转图像。这导致图像质量下降。我修改了脚本以便阅读;
$rotated_image = $angle == 0 ? $lrg_resized_image : imagerotate($lrg_resized_image, -$angle, 0);
这里仍然有一些未知的原因,为什么这种情况开始发生,之前它没有问题,另外如果我旋转图像,它仍然不是很好,但幸运的是无论如何都不太可能需要的用例。
感谢Golden_flash帮助我调试
答案 1 :(得分:0)
添加
imageconvolution($original_img,array(array(-1,-1,-1),array(-1,16,-1),array(-1,-1,-1)),8,0);
在imagecopyresample之后和imagejpeg之前
Imageconvolution用于锐化图像