博客列表 >自定义一个图片缩放函数

自定义一个图片缩放函数

瞬间
瞬间原创
2020年04月16日 14:04:31541浏览

/**

 *自定义一个图片等比缩放函数

 *@param string $picname 被缩放图片名

 *@param string $path 被缩放图片路径

 *@param int $maxWidth 图片被缩放后的最大宽度

 *@param int $maxHeight 图片被缩放后的最大高度

 *@param string $pre 缩放后的图片名前缀,默认为"s_"

 *@return boolen 返回布尔值表示成功与否。

 */

function imageResize($picname,$path,$maxWidth,$maxHeight,$pre="s_"){

    $path = rtrim($path,"/")."/";

    //1获取被缩放的图片信息

    $info = getimagesize($path.$picname);

    //获取图片的宽和高

    $width = $info[0];

    $height = $info[1];

    //2根据图片类型,使用对应的函数创建画布源。

    switch($info[2]){

        case 1: //gif格式

            $srcim = imagecreatefromgif($path.$picname);

            break;

        case 2: //jpeg格式

            $srcim = imagecreatefromjpeg($path.$picname);

            break;

        case 3: //png格式

            $srcim = imagecreatefrompng($path.$picname);

            break;

       default:

            return false;

            //die("无效的图片格式");

            break;

    }

    //3. 计算缩放后的图片尺寸

    if($maxWidth/$width<$maxHeight/$height){

        $w = $maxWidth;

        $h = ($maxWidth/$width)*$height;

    }else{

        $w = ($maxHeight/$height)*$width;

        $h = $maxHeight;

    }

    //4. 创建目标画布

    $dstim = imagecreatetruecolor($w,$h); 

    //5. 开始绘画(进行图片缩放)

    imagecopyresampled($dstim,$srcim,0,0,0,0,$w,$h,$width,$height);

    //6. 输出图像另存为

    switch($info[2]){

        case 1: //gif格式

            imagegif($dstim,$path.$pre.$picname);

            break;

        case 2: //jpeg格式

            imagejpeg($dstim,$path.$pre.$picname);

            break;

        case 3: //png格式

            imagepng($dstim,$path.$pre.$picname);

            break;

    }

    //7. 释放资源

    imagedestroy($dstim);

    imagedestroy($srcim);

    return true;

}


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议