欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

图像处理-图片裁剪

程序员文章站 2022-03-24 19:12:03
...

/**
 * #src 当前图片
 * $filename 生成后的图片名
 * $bsize 当前图片大小
 */
function mkThumbnail($src, $filename ,$bsize) {  
    $size = getimagesize($src); 
    if (!$size)  
        return false;  

    list($src_w, $src_h, $src_type) = $size;  
    $src_mime = $size['mime'];  // image/jpg
    // 获取图片类型
    switch($src_type) {  
        case 1 :  
            $img_type = 'gif';  
            break;  
        case 2 :  
            $img_type = 'jpeg';  
            break;  
        case 3 :  
            $img_type = 'png';  
            break;  
        case 15 :  
            $img_type = 'wbmp';  
            break;  
        default :  
            return false;  
    }  
    // 检测图片大小超过指定大小后缩小
    if($bsize>200*1024 && $bsize<=500*1024){  //200kb-1M
        $width=$src_w/2;
        $height=$src_h/2;
    }else if($bsize>500*1024 && $bsize<=1000*1024){
        $width=$src_w/3;
        $height=$src_h/3;
    }else if($bsize>1000*1024 && $bsize<2000*1024){
        $width=$src_w/6;
        $height=$src_h/6;
    }else if($bsize>2000*1024 && $bsize<5000*1024){
        $width=$src_w/8;
        $height=$src_h/8;
    }else if($bsize>=5000*1024){
        $width=$src_w/10;
        $height=$src_h/10;
    }

    $imagecreatefunc = 'imagecreatefrom' . $img_type; //画布类型 
    $src_img = $imagecreatefunc($src);  // 创建画布 
    $dest_img = imagecreatetruecolor($width, $height);  
    imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $width, $height, $src_w, $src_h);  

    header("Content-Type: {$src_mime}");
    // imagejpeg($dest_img);

    $imagefunc = 'image' . $img_type;
    $filename = $filename .'.'. $img_type; //新图片
    // $imagefunc($dest_img, $filename);  // 将图片输入到文件中
    $imagefunc($dest_img); // 在php中浏览该图片
    imagedestroy($src_img);  
    imagedestroy($dest_img);  
}

$img = "img.jpg"; // 当前图片
$img2 = 'head.png'; // 当前图片
$filename = 'new_img'; //新图片名称
$bsize = filesize($img); // 获取图片大小

mkThumbnail($img2, $filename, $bsize);
相关标签: php php