php 一个自动生成缩略图的工具类

<?php


class ThumbTool
{
  public static function make_thumb($path,$width=200,$height=200){
        //取得图片的 属性
        $imgarr=getimagesize($path);

        //取得图片中的格式
        $img=str_replace("image/","",$imgarr["mime"]);

        //构建创建素材原话画布 的变量
        $createTmage="imagecreatefrom".$img;
        //创建原画布
        $srcimg=$createTmage($path);
        //创建目标画布
        $dstimg=imagecreatetruecolor($width,$height);
        //在拷贝之前  求最终的目标大小和位置
        //取得原图的宽和高
        $srcWidth=$imgarr[0];
        $srcHeight=$imgarr[1];
        //求较大的比例
        $bili=$srcWidth/$width>$srcHeight/$height?$srcWidth/$width:$srcHeight/$height;
        //求取目标的大小
        $dstWidth=$srcWidth/$bili;
        $dstHight=$srcHeight/$bili;
        //求得拷贝的位置  缩略图  等比例缩放并居中
        $x1=($width-$dstWidth)/2;
        $y1=($height-$dstHight)/2;
        //创建一个白色  补在拷贝之前
        $white=imagecolorallocate($dstimg,255,255,255);
        imagefill($dstimg,0,0,$white);
        //拷贝图片
        imagecopyresampled($dstimg,$srcimg,$x1,$y1,0,0,$dstWidth,$dstHight,$srcWidth,$srcHeight);
        //取出扩展名
        $ext=strrchr($path,".");

        //构建缩略图的名字
        $name=uniqid("thumb_").$ext;
        //输出图片
        $saveImg=str_replace("/","",$imgarr["mime"]);

        //保存图片iamgejpeg()
        $saveImg($dstimg,UPLOADS_PATH.$name);
        //释放资源
        imagedestroy($srcimg);
        imagedestroy($dstimg);

        return $name;
    }


}

猜你喜欢

转载自blog.csdn.net/qq_37138818/article/details/81095648