使用此代码后(只使用处理图像的部分)
$image = imagecreatefromjpeg($filename);
$new_width = $thumbnail_width;
$new_height = $thumbnail_height;
$start_width = 0;
$start_height = 0;
$start_width = ($thumbnail_width - $image_params[0]) / 2;
$start_height = ($thumbnail_height - $image_params[1]) / 2;
imagecopy($image_res, $image, $start_width, $start_height, 0, 0, $image_params[0], $image_params[1]);
我的像素化效果非常差,你可以在这里看到它
这是原始图片
PHP Version 5.3.18
捆绑的GD版本(2.0.34兼容)
使用GD对我来说是必须的。这个例子在许多服务器上运行得非常好,但在某些情况下,我得到了这个可怕的结果,我想知道原因。
请帮忙吗?
答案 0 :(得分:5)
指定质量百分比时,我解决了同样的问题。
imagejpeg($im, 'watemark.jpg', 100);
或75为低等等。
答案 1 :(得分:0)
您需要在imagejpeg()中指定质量百分比。 此外,您可以使用imagecopyresampled()而不是imagecopy()。
imagecopyresampled($new_image,$old_image,0,0,0,0,$new_width,$new_height,$image_width,$image_height);
imagejpeg($new_image,$image,100);