imagecreatetruecolor()使我的图像质量下降

时间:2011-12-14 10:07:44

标签: php image

我正在使用下面的脚本根据上传图片的人创建JPG。会发生的是,即使图像的宽度/高度完全相同,它仍然会失去质量,以至于它是不可接受的。

$im = imagecreatefromjpeg($_FILES['cpicture']['tmp_name']);
$thumb=imagecreatetruecolor(507,307);
ImageCopyResampled($thumb,$im,0,0,0,0,$newwidth,$newheight,ImageSX($im),ImageSY($im));
ImagejpeG($thumb,"uploads/".$randomvalue.".jpg");
$imgurl="uploads/".$randomvalue.".jpg";

这些功能会降低质量吗?

2 个答案:

答案 0 :(得分:3)

imagejpeg的第三个参数是要输出的图像的质量:

  

quality是可选的,范围从0(最差质量,较小文件)到100(最佳质量,最大文件)。默认值是默认的IJG质量值(约75)。

尝试将代码的相关行更改为:

ImagejpeG($thumb,"uploads/".$randomvalue.".jpg", 100);

答案 1 :(得分:0)

JPEG总是会失去质量,因为它是一台有损压缩器。 如果您不想这样,请使用例如PNG。 是的或者将输出的质量设置为100:

ImagejpeG($thumb,"uploads/".$randomvalue.".jpg", 100);