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('压缩图片失败');
}

 

posted @ 2019-10-12 11:18  钧一  阅读(1211)  评论(0编辑  收藏  举报