想象一下,我有一个UIImage。 我需要旋转然后在全局坐标系(而不是UIImage坐标系)中裁剪它。因此,生成的图像将被裁剪和旋转。
我该怎么做? CGImageCreateWithImageInRect将仅在图像相对坐标中裁剪图像。
PS在评论中回答。你应该使用CIImage。
答案 0 :(得分:2)
也许这可以帮助
//init
CIImage *image = [CIImage imageWithCGImage:CGImageRef];
//rotation
CIImage *rotatedImage = [image imageByApplyingTransform:someTransform];
//crop
CIImage *croppedImage = [rotatedImage imageByCroppingToRect:someRect];
答案 1 :(得分:0)
轮换时,您需要申请
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];
如果您计划将图片编辑器集成到您的应用中,您可以考虑使用第三方,例如:https://github.com/heitorfr/ios-image-editor