代码:
/*
功能:裁剪图片
参数:$path —— 图片路径(相对路径)
$rule —— 裁剪规则,内容为裁剪的大小以及开始裁剪的位置。如:"400,400,100,100",表示从坐标为(100,100)开始裁剪400*400(宽*高)大小的图片
$status —— 是否删除原图 值为1表示删除
返回:返回裁剪后的图片路径
*/
function image_crop($path,$rule,$status = "0") {
// 实例化图片
$image = new \Think\Image();
// 打开图片
$image->open($path);
// 判断剪切图片后的保存路径是否存在
$savepath = "./Public/Upload/crop/";
if(!is_dir($savepath)) {
mkdir($savepath);
}
// 获取图片类型
$type = $image->type();
// 获取图片裁剪规则
$rule = explode(",",$rule);
// 进行图片裁剪
$image->crop($rule[0],$rule[1],$rule[2],$rule[3])->save($savepath.time().".".$type);
$path = $savepath.time().".".$type;
// 判断剪切文件是否存在
if(!is_file($path)) {
// 判断是否删除原图
if($status == 1) {
unli
}
return null;
}else{
return $path;
}
}
/*
功能:按照原图的比例生成缩略图
参数:$path —— 图片路径(相对路径)
$rule —— 压缩规则,内容为压缩的大小。如:"400,300,3",表示压缩为400*300(宽*高)的图片,3代表压缩类型
$status —— 是否删除原图 值为1表示删除
返回:返回裁剪后的图片路径
*/
function image_thumb($path,$rule,$status = "0") {
// 实例化图片
$image = new \Think\Image();
// 打开图片
$image->open($path);
// 判断剪切图片后的保存路径是否存在
$savepath = "./Public/Upload/thumb/";
if(!is_dir($savepath)) {
mkdir($savepath);
}
// 获取图片后缀类型
$type = $image->type();
// 获取规则数组
$rule = explode(",",$rule);
$rule[2] = $rtype[$rule[2]];
// 获取压缩类型
switch($rule[2]) {
case 1: //等比例缩放类型
$rule[2] = \Think\Image::IMAGE_THUMB_SCALE;
break;
case 2: //缩放后填充类型
$rule[2] = \Think\Image::IMAGE_THUMB_FILLED;
break;
case 3: //居中裁剪类型
$rule[2] = \Think\Image::IMAGE_THUMB_CENTER;
break;
case 4: //左上角裁剪类型
$rule[2] = \Think\Image::IMAGE_THUMB_NORTHWEST;
break;
case 5: //右下角裁剪类型
$rule[2] = \Think\Image::IMAGE_THUMB_SOUTHEAST;
break;
case 6: //固定尺寸缩放类型
$rule[2] = \Think\Image::IMAGE_THUMB_FIXED;
break;
default: //默认为等比例缩放类型
$rule[2] = \Think\Image::IMAGE_THUMB_SCALE;
break;
}
// 图片压缩处理
$re = $image->thumb($rule[0],$rule[1],$rule[2])->save($savepath.time().".".$type);
$path = $savepath.time().".".$type;
// 判断是否删除原图
if($status == 1) {
unli
}
return $path;
}
最佳答案