- (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;
}
圖片剪裁
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.