我有一段时间使用CGImageCreateWithImageInRect裁剪照片。我的应用程序让用户移动/放大图像,直到它填充316 x 316视图,然后我希望它裁剪框外的任何区域并将图像保存为UIImage。我通过获取x和y图像视图原点的绝对值来确定作物的原点,因为这将我带回到包含图像视图的视图/框的0,0。下面是代码:CGImageCreateWithImageInRect不是正确裁剪
CGRect croppedRect = CGRectMake(fabs(widthDistanceToOrigin), fabs(HeightDistanceToOrigin), 316, 316);
CGImageRef croppedImageRef = CGImageCreateWithImageInRect(image.CGImage, croppedRect);
UIImage *croppedImage = [UIImage imageWithCGImage: croppedImageRef scale: 1/(imageScale) orientation: image.imageOrientation];
CGImageRelease(croppedImageRef);
这让我疯狂,我不能让它收割我想要的区域。我已经把它正确地缩放了,但是问题似乎与作物矩形的x和y原点有关,它离它应该采取的区域有点偏离(有时我会得到奇怪的结果)。
此外,它似乎与手机相机拍摄的图像,我必须乘以我的作物rect一切为2,因为它是正确的大小。很奇怪。
所以我想知道,有没有人知道如何解决这个问题,或者有没有人可能有更好的裁剪方式(请记住我需要裁剪照片中的一个区域)。谢谢!
请在答案中提供您的解决方案,并在系统允许时接受。 –