تالار گفتمان nCIS.ir

نسخه‌ی کامل: تغییر اندازه تصویر بدون افت کیفیت
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام و عرض ادب و احترام 
به این کدمن یه نگاه بندازین
من با استفاده از این تابع که نوشتم اندازه تصویرم رو عوض میکنم . 
این تابع انددازه تصویر رو عوض میکنه و به اندازه دلخواه تبدیل میکنه ولی خیلی افت کیفیت داره . 
آیا تابعی به غیر از imagecopyresized برای تغییر اندازه تصویر وجود داره ؟
به طوری که افت کیفیت کم باشه .
 
آیا تو تابع imagecopyresized میشه تنظیماتی انجام داد که کیفیتش رو ببره بالا .
ممنون از لطفتون

public function resizee($file,$size=900){



$filename = $file;

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

$w = $width;

$h = $height;

$r = $w / $h;

$ww=$size;

$hh=(int)$ww/$r;







$newwidth =$ww;

$newheight =$hh;

$thumb = imagecreatetruecolor($newwidth, $newheight);





$ext=substr(strrchr($file,'.'), 1);

switch($ext){



case 'jpg':

$source=imagecreatefromjpeg($filename);

imagecopyresized($thumb, $source,0, 0, 0, 0, $newwidth, $newheight, $width, $height);

imagejpeg($thumb,$file);

break;





case 'JPG':

$source=imagecreatefromjpeg($filename);

imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

imagejpeg($thumb,$file);

break;





case 'jpeg':

$source=imagecreatefromjpeg($filename);

imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

imagejpeg($thumb,$file);

break;





case 'JPEG':

$source=imagecreatefromjpeg($filename);

imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

imagejpeg($thumb,$file);

break;







case 'png':

$source=imagecreatefrompng($filename);

imagealphablending($source,true);

imagesavealpha($source,true);

imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

imagepng($thumb,$file);

break;





case 'PNG':

$source=imagecreatefrompng($filename);

imagealphablending($source,true);

imagesavealpha($source,true);

imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

imagepng($thumb,$file);

break;





case 'gif':

$source=imagecreatefromgif($filename);

imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

imagegif($thumb,$file);

break;



case 'GIF':

$source=imagecreatefromgif($filename);

imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

imagegif($thumb,$file);

break;



}

}
از ImageCopyResampled استفاده کنید.