美文网首页
php 图片等比例缩放

php 图片等比例缩放

作者: observerb | 来源:发表于2020-03-31 22:27 被阅读0次

/**

    *等比例缩放函数(以保存新图片的方式实现)

    * @param string $picName 被缩放的处理图片源

    * @param string $savePath 保存路径

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

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

    * @param string $pre 缩放后图片的前缀名

    * @return $string 返回后的图片名称() 如a.jpg->s.jpg

    *

    **/

protected function scaleImg($picName,$savePath,$maxx= 800,$maxy= 450)

    {

        $info=getimageSize($picName);//获取图片的基本信息$w=$info[0];//获取宽度$h=$info[1];//获取高度if($w<=$maxx&&$h<=$maxy){

            return$picName;

        }

        //获取图片的类型并为此创建对应图片资源switch($info[2]) {

            case1://gif$im= imagecreatefromgif($picName);

                break;

            case2://jpg$im= imagecreatefromjpeg($picName);

                break;

            case3://png$im= imagecreatefrompng($picName);

                break;

            default:die("图像类型错误");

        }

        //计算缩放比例if(($maxx/$w) > ($maxy/$h)) {

            $b=$maxy/$h;

        } else {

            $b=$maxx/$w;

        }

        //计算出缩放后的尺寸$nw=floor($w*$b);

        $nh=floor($h*$b);

        //创建一个新的图像源(目标图像)$nim= imagecreatetruecolor($nw,$nh);

        //透明背景变黑处理

        //2.上色$color=imagecolorallocate($nim,255,255,255);

        //3.设置透明imagecolortransparent($nim,$color);

        imagefill($nim,0,0,$color);

        //执行等比缩放imagecopyresampled($nim,$im, 0, 0, 0, 0,$nw,$nh,$w,$h);

        //输出图像(根据源图像的类型,输出为对应的类型)$picInfo=pathinfo($picName);//解析源图像的名字和路径信息$savePath=$savePath. "/" .date("Ymd")."/".$this->pre .$picInfo["basename"];

        switch($info[2]) {

            case1:                imagegif($nim,$savePath);

                break;

            case2:                imagejpeg($nim,$savePath);

                break;

            case3:                imagepng($nim,$savePath);

                break;

        }

        //释放图片资源imagedestroy($im);

        imagedestroy($nim);

        //返回结果return$savePath;

    }

相关文章

网友评论

      本文标题:php 图片等比例缩放

      本文链接:https://www.haomeiwen.com/subject/zdvwuhtx.html