-
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=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;
- }
-
- function get_thum_name($img_name,$suffix){
- $str=explode('#',$img_name);
- $str1=explode('.',$str[1]);
- return $str[0].'_'.$suffix.'.'.$str1[1];
- }
-
相关阅读:
【转】五笔字根图
数据集ds 转化为json
js 计算 往前(后)几天(月、年)
js 每秒刷新系统时间,可停止
如何获取枚举字符串,值及遍历枚举
js 正则判断值
C#将时间格式 yyyymmdd hh:mm:ss转换为yyyyMMddHHmmss
【转】什么是程序集?
C# 两个日期相减得到月数和天数和时and计算 日期减去月之后的日期
js判断一个下拉框的选中值是否改变
-
原文地址:https://www.cnblogs.com/sanwenyu/p/4563918.html
Copyright © 2020-2023
润新知