- (UIImage *)getClipImage:(UIImage *)sourceImage clipRect:(CGRect)clipRect {
CGFloat (^rad)(CGFloat) = ^CGFloat(CGFloat deg) {
return deg / 180.0f * (CGFloat) M_PI;
};
CGAffineTransform rectTransform;
switch (sourceImage.imageOrientation) {
case UIImageOrientationLeft:
rectTransform = CGAffineTransformTranslate(CGAffineTransformMakeRotation(rad(90)), 0, -sourceImage.size.height);
break;
case UIImageOrientationRight:
rectTransform = CGAffineTransformTranslate(CGAffineTransformMakeRotation(rad(-90)), -sourceImage.size.width, 0);
break;
case UIImageOrientationDown:
rectTransform = CGAffineTransformTranslate(CGAffineTransformMakeRotation(rad(-180)), -sourceImage.size.width, -sourceImage.size.height);
break;
default:
rectTransform = CGAffineTransformIdentity;
};
rectTransform = CGAffineTransformScale(rectTransform, sourceImage.scale, sourceImage.scale);
CGRect transformedCropSquare = CGRectApplyAffineTransform(clipRect, rectTransform);
CGImageRef imageRef = CGImageCreateWithImageInRect(sourceImage.CGImage, transformedCropSquare);
UIImage *image = [UIImage imageWithCGImage:imageRef scale:sourceImage.scale orientation:sourceImage.imageOrientation];
return image;
}
图片剪裁
最新推荐文章于 2021-09-27 23:46:12 发布