假设我有一张UIImage图片。
我需要在全局坐标系(而不是UIImage的坐标系)中旋转并裁剪它。因此,结果图像将被裁剪并且旋转。
我该怎么做?CGImageCreateWithImageInRect仅会在图像相关的坐标系中裁剪图像。
PS 在评论中回答。您应该使用CIImage。
假设我有一张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的框架即可。
要转换本地坐标图像,只需使用:
// 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];