-(UIImage *)cutCenterImage:(UIImage *)image size:(CGSize)size{
CGSize imageSize = image.size;
CGRect rect;
//根据图片的大小计算出图片中间矩形区域的位置与大小
if (imageSize.width > imageSize.height) {
float leftMargin = (imageSize.width - imageSize.height) * 0.5;
rect = CGRectMake(leftMargin, 0, imageSize.height, imageSize.height);
}else{
float topMargin = (imageSize.height - imageSize.width) * 0.5;
rect = CGRectMake(0, topMargin, imageSize.width, imageSize.width);
}
CGImageRef imageRef = image.CGImage;
//截取中间区域矩形图片
CGImageRef imageRefRect = CGImageCreateWithImageInRect(imageRef, rect);
UIImage *tmp = [[UIImage alloc] initWithCGImage:imageRefRect];
CGImageRelease(imageRefRect);
UIGraphicsBeginImageContext(size);
CGRect rectDraw = CGRectMake(0, 0, size.width, size.height);
[tmp drawInRect:rectDraw];
// 从当前context中创建一个改变大小后的图片
tmp = UIGraphicsGetImageFromCurrentImageContext();
// 使当前的context出堆栈
UIGraphicsEndImageContext();
return tmp;
}
截取图片中间矩形区域的图片
最新推荐文章于 2021-11-30 10:20:25 发布