Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 旋转并裁剪图像_Ios_Objective C_Uiimage_Cgimage - Fatal编程技术网

Ios 旋转并裁剪图像

Ios 旋转并裁剪图像,ios,objective-c,uiimage,cgimage,Ios,Objective C,Uiimage,Cgimage,想象一下,我有一个新的形象。 我需要旋转,然后在全局坐标系(不是UIImage坐标系)中裁剪它。因此,生成的图像将被剪切并旋转 我该怎么做?CGImageCreateWithImageInRect将仅在图像相对坐标中裁剪图像 PS在评论中回答。您应该使用CIImage。对于旋转,您需要应用 CGAffineTransform transform = CGAffineTransformTranslate(self.imageView.transform,deltaX,deltaY); tra

想象一下,我有一个新的形象。 我需要旋转,然后在全局坐标系(不是UIImage坐标系)中裁剪它。因此,生成的图像将被剪切并旋转

我该怎么做?CGImageCreateWithImageInRect将仅在图像相对坐标中裁剪图像


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(度)”后给我空图像