/*
以原图最短边为边长,居中裁剪 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;
}