旋转和裁剪UIImage
想象一下,我有一个UIImage。 我需要旋转,然后在全球坐标系(而不是UIImage坐标系)裁剪。 所以结果图像将被裁剪和旋转。
我怎样才能做到这一点? CGImageCreateWithImageInRect将仅在图像相对坐标中裁剪图像。
PS在评论中回答。 你应该使用CIImage。
也许这可以帮助
//init CIImage *image = [CIImage imageWithCGImage:CGImageRef]; //rotation CIImage *rotatedImage = [image imageByApplyingTransform:someTransform]; //crop CIImage *croppedImage = [rotatedImage imageByCroppingToRect:someRect];
为了旋转,你需要申请
CGAffineTransform transform = CGAffineTransformTranslate(self.imageView.transform,deltaX,deltaY); transform = CGAffineTransformRotate(transform, recognizer.rotation); transform = CGAffineTransformTranslate(transform, -deltaX, -deltaY); self.imageView.transform = transform;
对于裁切,只需更改imageView的框架
要转换本地coordinate'image,只需使用:
// converts a point in local coordinate space to window coordinates. [self.imageView convertPoint:localPosition toView:nil]; // use this method to calculate a view's origin in window space like this: [self.imageView convertPoint:self.imageView.frame.origin toView:nil];
如果您打算将图像编辑器集成到您的应用程序中,则可以考虑使用以下第三方: https : //github.com/heitorfr/ios-image-editor