Ios 旋转并裁剪图像
想象一下,我有一个新的形象。 我需要旋转,然后在全局坐标系(不是UIImage坐标系)中裁剪它。因此,生成的图像将被剪切并旋转 我该怎么做?CGImageCreateWithImageInRect将仅在图像相对坐标中裁剪图像Ios 旋转并裁剪图像,ios,objective-c,uiimage,cgimage,Ios,Objective C,Uiimage,Cgimage,想象一下,我有一个新的形象。 我需要旋转,然后在全局坐标系(不是UIImage坐标系)中裁剪它。因此,生成的图像将被剪切并旋转 我该怎么做?CGImageCreateWithImageInRect将仅在图像相对坐标中裁剪图像 PS在评论中回答。您应该使用CIImage。对于旋转,您需要应用 CGAffineTransform transform = CGAffineTransformTranslate(self.imageView.transform,deltaX,deltaY); tra
PS在评论中回答。您应该使用CIImage。对于旋转,您需要应用
CGAffineTransform transform = CGAffineTransformTranslate(self.imageView.transform,deltaX,deltaY);
transform = CGAffineTransformRotate(transform, recognizer.rotation);
transform = CGAffineTransformTranslate(transform, -deltaX, -deltaY);
self.imageView.transform = transform;
要进行裁剪,只需更改imageView的边框即可
要转换局部坐标的图像,只需使用:
// 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];
如果你计划将一个图像编辑器集成到你的应用程序中,你可能希望考虑使用一个第三方:
< P>这也许可以帮助//init
CIImage *image = [CIImage imageWithCGImage:CGImageRef];
//rotation
CIImage *rotatedImage = [image imageByApplyingTransform:someTransform];
//crop
CIImage *croppedImage = [rotatedImage imageByCroppingToRect:someRect];
谢谢你的回答,但我需要得到内部使用的转换,而不是UIView。我刚刚测试了它,它工作了!我应该注意,仿射旋转会围绕图像的左下角(CIImage坐标系的零点)旋转图像,而不是围绕其中心旋转图像,因此在应用裁剪时,您应该小心使用坐标。您可以发布代码,说明如何计算某个矩形吗?我旋转图像,但我不知道如何裁剪我想要的矩形,因为旋转后它不在原来的位置。不适合我。“imageByCroppingToRect”应用“CGAffineTransform t=CGAffineTransformMakeRotation(度)”后给我空图像