PHP创建缩略图造成图片质量低下的完美解决办法
时间:2021-07-01 10:21:17
帮助过:6人阅读
PHP创建缩略图造成图片质量低下的完美解决方法
- ?
- ?
- ?
- ?
- ?
- ?
- ?
- ??
- function?thum($img_name,$max_width,$max_height,$suffix){??
- ????????$img_infos=getimagesize($img_name);??
- ????????$img_height=$img_infos[0];??
- ????????$img_width=$img_infos[1];??
- ????????$img_extension='';??
- ????????switch($img_infos[2]){??
- ????????????case?1:??
- ????????????????$img_extension='gif';??
- ????????????????break;??
- ????????????case?2:??
- ????????????????$img_extension='jpeg';??
- ????????????????break;??
- ?????????case?3:??
- ????????????????$img_extension='png';??
- ????????????????break;??
- ????????????default:??
- ????????????????$img_extension='jpeg';??
- ????????????????break;??
- ????????????}??
- ????????$new_img_size=get_thum_size($img_width,$img_height,$max_width,$max_height);??
- ??????????
- ??????????
- ??????????
- ??????????
- ????????$img_func='';??
- ????????$img_handle='';??
- ????????$thum_handle='';??
- ????????switch($img_extension){??
- ????????????case?'jpg':??
- ????????????????$img_handle=imagecreatefromjpeg($img_name);??
- ????????????????$img_func='imagejpeg';??
- ????????????????break;??
- ????????????case?'jpeg':??
- ????????????????$img_handle=imagecreatefromjpeg($img_name);??
- ????????????????$img_func='imagejpeg';??
- ???????????????break;??
- ????????????case?'png':??
- ????????????????$img_handle=imagecreatefrompng($img_name);??
- ????????????????$img_func='imagepng';??
- ????????????????break;??
- ????????????case?'gif':??
- ????????????????$img_handle=imagecreatefromgif($img_name);??
- ????????????????$img_func='imagegif';??
- ????????????????break;??
- ????????????default:??
- ????????????????$img_handle=imagecreatefromjpeg($img_name);??
- ????????????????$img_func='imagejpeg';?
- ????????????????break;??
- ????????????}??
- ????????????
- ????????$quality=100;??
- ????????if($img_func==='imagepng'?&&?(str_replace('.',?'',?PHP_VERSION)>=?512)){??
- ????????????$quality=9;??
- ????????????}???
- ??????????
- ????????$thum_handle=imagecreatetruecolor($new_img_size['height'],$new_img_size['width']);??
- ????????if(function_exists('imagecopyresampled')){??
- ????????????imagecopyresampled($thum_handle,$img_handle,?0,?0,?0,?0,$new_img_size['height'],$new_img_size['width'],$img_height,$img_width);??
- ????????????}else{??
- ????????????????imagecopyresized($thum_handle,$img_handle,?0,?0,?0,?0,$new_img_size['height'],$new_img_size['width'],$img_height,$img_width);??
- ????????????}??
- ????????call_user_func_array($img_func,array($thum_handle,get_thum_name($img_name,$suffix),$quality));??
- ????????imagedestroy($thum_handle);??
- ????????imagedestroy($img_handle);??
- ????}??
- ??
- ?
- ?
- ?
- ?
- ?
- ?
- ?
- ??
- function?get_thum_size($width,$height,$max_width,$max_height){??
- ????$now_width=$width;??
- ????$now_height=$height;??
- ????$size=