图像处理-图片裁剪
程序员文章站
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);