hamidrezawd
چهارشنبه 22 اسفند 1397, 10:29 صبح
سلام و عرض ادب و احترام
به این کدمن یه نگاه بندازین
من با استفاده از این تابع که نوشتم اندازه تصویرم رو عوض میکنم .
این تابع انددازه تصویر رو عوض میکنه و به اندازه دلخواه تبدیل میکنه ولی خیلی افت کیفیت داره .
آیا تابعی به غیر از 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;
}
}
به این کدمن یه نگاه بندازین
من با استفاده از این تابع که نوشتم اندازه تصویرم رو عوض میکنم .
این تابع انددازه تصویر رو عوض میکنه و به اندازه دلخواه تبدیل میکنه ولی خیلی افت کیفیت داره .
آیا تابعی به غیر از 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;
}
}