截取图片中间矩形区域的图片

来源:互联网 发布:mac上海店 编辑:程序博客网 时间:2024/04/27 18:07

-(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;}


0 0