PHP 使用gd库压缩图片并生成新图片返回全路径
使用gd库前,先检查是否开启了gd库
phpinfo();
如果在php配置信息里找到了gd库,那么就是开启了,没开启的自行百度如何开启php gd库
既然开启了gd库,那么直接再php里写入以下代码即可
//获取图片信息 $filename = './11.jpg'; $info = getimagesize($filename); //获取图片的后缀 $type = image_type_to_extension($info[2], false); //拼接图片资源句柄函数 $func = 'imagecreatefrom'.$type; //创建图片资源句柄 $image = $func($filename); //生成缩略图,宽高都缩小1/2 //1、在内存中创建画板 宽 高 $image_thumb = imagecreatetruecolor($info[1]/4, $info[1]/2); //2、将原图复制到新建的画板上,并按照一定比例压缩 imagecopyresampled($image_thumb, $image, 0, 0,0,0, $info[1]/4,$info[1]/2,$info[0],$info[0]); //销毁缓存的图片,释放内存 imagedestroy($image); //图片输出函数拼接 $outFunc = 'image'.$type; //设置文件路径 $ml = date('Ymd', time());//目录名称 $url = $ml.'/'.time().'.png';//存储的路径 //判断目录是否存在 if (file_exists($ml) == false){ //创建目录,并且设置最高权限 if (mkdir($ml, 0700, true)){ echo '创建目录成功'; }else{ echo '创建目录失败'; } } //判断是http还是https $http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://'; //全路径 $urls = $http_type . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . $url; //生成图片 if ($outFunc($image_thumb,$url)){ var_dump('压缩图片成功,图片路径为:'.$urls); }else{ var_dump('压缩图片失败'); }