• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP创建缩略图造成图片质量低解决方法

php 搞代码 3年前 (2022-01-26) 10次浏览 已收录 0个评论
/*** @name	thum 	缩略图函数* @param	sting	$img_name	图片路径* @param	int		$max_width	略图最大宽度* @param	int		$max_height	略图最大高度* @param	sting	$suffix 略图后缀(如"img_x.jpg"代表小图,"img_m.jpg"代表中图,"img_l.jpg"代表大图)* @return	void*/function thum(<b>/本文来源gao@!dai!ma.com搞$$代^@码5网@</b><strong>搞代gaodaima码</strong>$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);//新的图片尺寸						//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, 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);//清除句柄	}/*** @name get_thum_size 获得缩略图的尺寸* @param	$width	图片宽* @param    $height 图片高* @param	$max_width 最大宽度* @param	$maxHeight 最大高度* @param	array $size;*/function get_thum_size($width,$height,$max_width,$max_height){	$now_width=$width;//现在的宽度	$now_height=$height;//现在的高度	$size=array();	if($now_width>$max_width){//如果现在宽度大于最大宽度		$now_height*=number_format($max_width/$width,4);		$now_width=	$max_width;		}	if($now_height>$max_height){//如果现在高度大于最大高度		$now_width*=number_format($max_height/$now_height,4);		$now_height=$max_height;		}	$size['width']=floor($now_width);	$size['height']=floor($now_height);	return $size;	}/***@ name 	get_thum_name 获得略图的名称(在大图基础加_x)*/function get_thum_name($img_name,$suffix){		$str=explode('#',$img_name);		$str1=explode('.',$str[1]);		return $str[0].'_'.$suffix.'.'.$str1[1];	}


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP创建缩略图造成图片质量低解决方法
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址