首页 > 代码库 > 根据size截取屏幕中间矩形区域

根据size截取屏幕中间矩形区域

代码:

- (void)viewDidLoad{    [super viewDidLoad];    // Do any additional setup after loading the view.        UIImageView *imageView=[[UIImageView alloc]initWithFrame:CGRectMake(50, 100, 200, 200)];    imageView.backgroundColor=[UIColor redColor];    //显示截取的图    imageView.image=[self cutCenterImage:[UIImage imageNamed:@"1.jpg"] size:CGSizeMake(200, 200)];    [self.view addSubview:imageView];        }#pragma mark 根据size截取图片中间矩形区域的图片 这里的size是正方形-(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;}

 

根据size截取屏幕中间矩形区域