رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
تغییر اندازه تصویر بدون افت کیفیت
#1
سلام و عرض ادب و احترام 
به این کدمن یه نگاه بندازین
من با استفاده از این تابع که نوشتم اندازه تصویرم رو عوض میکنم . 
این تابع انددازه تصویر رو عوض میکنه و به اندازه دلخواه تبدیل میکنه ولی خیلی افت کیفیت داره . 
آیا تابعی به غیر از 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;



}

}
پاسخ
تشکر شده توسط:
#2
از ImageCopyResampled استفاده کنید.
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان