- /**?
- [email protected]?
- [email protected]$img_name???图片路径?
- [email protected]$max_width??略图最大宽度?
- [email protected]$max_height?略图最大高度?
- [email protected]$suffix?略图后缀(如"img_x.jpg"代表小图,"img_m.jpg"代表中图,"img_l.jpg"代表大图)?
- [email protected]?
- */??
- 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);//新的图片尺寸??
- ??????????
- ??????????
- ????????//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);//清除句柄??
- ????}??
- ??
- /**?
- [email protected]_thum_size?获得缩略图的尺寸?
- [email protected]$width??图片宽?
- [email protected]$height?图片高?
- [email protected]$max_width?最大宽度?
- [email protected]$maxHeight?最大高度?
- [email protected]$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;??
- ? ?} ??
- /**?
- [email protected]_thum_name?获得略图的名称(在大图基础加_x)?
- */??
- function?get_thum_name($img_name,$suffix){??
- ????????$str=explode('#',$img_name);??
- ????????$str1=explode('.',$str[1]);??
- ????????return?$str[0].'_'.$suffix.'.'.$str1[1];??
- ????} ?
详细解决方案
PHP创建缩略图造成图片质量低下的完美解决办法
热度:76 发布时间:2016-04-28 23:03:47.0
相关解决方案
- jquery,二维数组取值。解决办法
- 求架构方案:一个日均访问量50万的物流筛单系统的技术架构方案?解决办法
- 关于 if(rs.getString("").trim().equals(""))解决办法
- 诡异:代码执行到哪去了?解决办法
- 关于 Spring 声明式事务管理!解决办法
- 求《Java Web 程序设计与项目实践》解决办法
- 加载Hibernate的报错了,求解。解决办法
- B/S方面,java比PHP更好吗?解决办法
- 算法求解String str = "A,B,C,A,B,A"解决办法
- 这段代码还能不能优化?解决办法
- JAVA读取一个文件,非得搞那么麻烦么?解决办法
- 求帮忙。解决办法
- POI导入excel数据(数据有父子关系)解决办法
- IE不支持JQuery吗?解决办法
- 求WebService的解决方案!解决办法
- 关于ibatis的<isNotEmpty>解决办法
- hibernate获取SessionFactory失败 咋办?解决办法
- 关于<s:iterator>遍历数据。解决办法
- ASP技术升级选择.(.net或Java)解决办法
- jsp页面提交到action,中文乱码(服务器Tomcat5.0)解决办法
- 求按钮上传~解决办法
- 在项目中META INF下创建context.xml获得mysql数据库连接池(急)解决办法
- SSH插入数据,报空指针?解决办法
- JBPM 报错,需回答,在线急等!解决办法
- 吐了,java Timer 停止不了。解决办法
- struts2 带查询条件分页怎样把值带入下一页?解决办法
- jxl导出报表时,怎样合并单元格?解决办法
- axjax与ASP的数据交换的写法?解决办法
- 怎样编写jsp登陆次数超过3次就锁定用户,再过24小时就取消锁定?解决办法
- jquey 改变匹配字符的CSS?解决办法