CGImageCreateWithImageInRect无法正常工作

时间:2013-11-03 17:15:47

标签: iphone objective-c cocoa-touch uiimage

我正在尝试使用CGImageCreateWithImageInRect从图像中获取子图像,但它无法正常工作。它从图像中的随机位置返回图像,而不是我指定的图像。请看下面的图片;

enter image description here

我的代码是:

CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], CGRectMake(524, 1331, 600, 600));
UIImage *croppedImage = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);

但这不起作用。我做错了什么?

谢谢!

2 个答案:

答案 0 :(得分:6)

您的图片可能会为其设置的UIImageOrientation与您期望的不同。 iOS将正确显示图像,但图像将被侧向存储(缺少更好的术语)。

所以,当你说从MM开始给我时,你会得到y,x,或者一些随机的疯狂,因为你正在访问一个超出正常范围的矩形。

This answer讨论如何确定方向。

答案 1 :(得分:2)

请参阅后面的答案,您需要转换矩形或转换图像。我更喜欢转换矩形。

https://stackoverflow.com/a/21560825/2482283