2011-12-14 50 views
0

我使用下面的脚本根据上传图像的人创建JPG。会发生什么,即使图像是完全相同的宽度/高度,它仍然会失去质量,以至于无法接受。imagecreatetruecolor()使我的图像失去质量

$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"; 

这些功能是否降低了质量?

+1

函数名...有创意资本:O) – deceze 2011-12-14 10:12:23

回答

3

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

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

试着改变你的代码的相关行:

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

它上传好得多。非常感谢你! – Tiny 2011-12-14 10:25:04

0

JPEG总是输的质量,因为它是一种有损压缩。 如果您不想要,请使用例如PNG。 呀或输出的质量为100比

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