旋转和裁剪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