居中裁剪 image 为正方形

来源:互联网 发布:linuxshell编程实例 编辑:程序博客网 时间:2024/05/30 23:01
/* 以原图最短边为边长,居中裁剪 image 为正方形 */+ (UIImage *)centerClipImage:(UIImage *)image;

/* 以原图最短边为边长,居中裁剪 image 为正方形 */+ (UIImage *)centerClipImage:(UIImage *)image{    if (!image) {        return nil;    }        UIImage *srcImage = image;    CGFloat val = 0.f;    CGRect rect = CGRectZero;    CGSize srcSize = srcImage.size;    if ([@(srcSize.width) compare:@(srcSize.height)] == NSOrderedAscending) { // w < h        val = srcSize.width;        rect = CGRectMake(0.f, (srcSize.height - val) / 2.f, val, val);    }    else if ([@(srcSize.width) compare:@(srcSize.height)] == NSOrderedDescending) { // w > h        val = srcSize.height;        rect = CGRectMake((srcSize.width - val) / 2.f, 0.f, val, val);    }    else { // w = h        return image;    }        CGImageRef cg = CGImageCreateWithImageInRect(srcImage.CGImage, rect);    UIImage *clippedImage = [UIImage imageWithCGImage:cg];    CGImageRelease(cg);        return clippedImage;}

0 1
原创粉丝点击