在php文件图片上传中图像质量下降

时间:2013-12-18 12:10:14

标签: php

我使用简单的图片上传php代码,但图像质量下降为100x100 50x50。如何提高图像质量?

我想在上传照片时使用高质量的照片。

if($extension=="jpg" || $extension=="jpeg" )
{
$uploadedfile = $_FILES['file']['tmp_name'];
$src = imagecreatefromjpeg($uploadedfile);

}
else if($extension=="png")
{
$uploadedfile = $_FILES['file']['tmp_name'];

 $src= imagecreatefrompng($uploadedfile);
imagealphablending($src, false);
imagesavealpha($src, true);
imagealphablending($src, false);
imagesavealpha($src, true);
}
else 
{
$src = imagecreatefromgif($uploadedfile);
}

echo $scr;

list($width,$height)=getimagesize($uploadedfile);

if($width>75)
{

$newwidth=50;
$newheight=($height/$width)*$newwidth;
$tmp=imagecreatetruecolor($newwidth,$newheight);


$newwidth1=100;
$newheight1=($height/$width)*$newwidth1;
$tmp1=imagecreatetruecolor($newwidth1,$newheight1);

imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);

imagecopyresampled($tmp1,$src,0,0,0,0,$newwidth1,$newheight1,$width,$height);


$ext = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);

$mainfilename = $username.".".$ext;


$filename = "pics/50/". $username.".".$ext;

$filename1 = "pics/100/". $username.".".$ext;

imagejpeg($tmp,$filename,50);

imagejpeg($tmp1,$filename1,100);

有人可以帮助我使用一张大照片制作4张尺寸的缩略图,但质量很好吗?

2 个答案:

答案 0 :(得分:0)

imagejpeg()的第三个参数是图像质量(不是您的代码似乎暗示的大小)。

只需将其设置为100即可获得最高质量。

http://www.php.net/manual/en/function.imagejpeg.php

答案 1 :(得分:0)

来自imagejpeg documentation

bool imagejpeg ( resource $image [, string $filename [, int $quality ]] )

因此,为了获得最高质量的图像,您需要将质量设置为100

//0 = lowest, 100 = highest. ~75 = default
imagejpeg($tmp1,$filename1,100);