图像处理-图片裁剪


/**
 * #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);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值