php生成缩略图质量较差解决方法代码示例
发布时间:2021-03-31 10:29:57  所属栏目:PHP教程  来源:网络整理 
            导读:近期弄个论坛,在首页要有个排名,显示评论最多的前十位用户的列表,列表有个略图是用户最新上传的作品,如果使用原来的图,图片过大,首页加载过慢,因此要使用略图 以上来使用imagecopyresized这个函数,显示质量很差如图 后来改用imagecopyresampled效
                
                
                
            | 近期弄个论坛,在首页要有个排名,显示评论最多的前十位用户的列表,列表有个略图是用户最新上传的作品,如果使用原来的图,图片过大,首页加载过慢,因此要使用略图 以上来使用imagecopyresized这个函数,显示质量很差如图 
 后来改用imagecopyresampled效果明显改变效果如图 
 附上完整代码: //print_r($new_img_size); 
//die('test'); 
$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)){//针对php版本大于5.12参数变化后的处理情况 
  $quality=9; 
  }  
/****/ 
$thum_handle=imagecreatetruecolor($new_img_size['height'],$new_img_size['width']); 
if(function_exists('imagecopyresampled')){ 
  imagecopyresampled($thum_handle,$img_handle,$new_img_size['height'],$new_img_size['width'],$img_width); 
  }else{ 
    imagecopyresized($thum_handle,$img_width); 
  } 
call_user_func_array($img_func,array($thum_handle,get_thum_name($img_name,$suffix),$quality)); 
imagedestroy($thum_handle);//清除句柄 
imagedestroy($img_handle);//清除句柄 } 
 (编辑:源码网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! | 



