我正在使用CGImageCreateWithImageInRect
相机裁剪图像。iPhone(和照片图像)的方向是人像,我的理解是CGImageCreateWithImageInRect
,当以人像模式握住手机时,原点应该位于手机的左下角。换句话说,原点应该从坐标 0,480 开始,并且随着您向左上角上升,y 增量,并且 x 保持不变。
然而,令我惊讶的是,我必须移动 x 坐标,以使以下代码正常工作。x 原点必须从右上角开始,y 保持不变。查看其他CGImageCreateWithImageInRect
在线和此处的 SO 用法,我没有看到任何代码可以缓解我遇到的问题,所以我很难理解为什么以下代码仅在原点从 0,0 移动到 320 时才有效, 0。
任何人都可以添加一些见解吗?谢谢!
- (UIImage *)crop:(CGRect)rect {
CGImageRef croppedImageRef = CGImageCreateWithImageInRect([self CGImage], CGRectMake(rect.origin.y, [self size].width - rect.origin.x - rect.size.width, rect.size.height, rect.size.width));
UIImage *croppedImage = [UIImage imageWithCGImage:croppedImageRef scale:self.scale orientation:[self imageOrientation]];
CGImageRelease(croppedImageRef);
return croppedImage;
}