Iphone 为什么我使用CGImageCreateWithImageInRect时图像会旋转?

Iphone 为什么我使用CGImageCreateWithImageInRect时图像会旋转?,iphone,ios4,Iphone,Ios4,这是我的代码: CGRect rect = CGRectMake(size.width / 4, size.height / 4 , size.width / 2, size.width / 2); CGImageRef imageRef = CGImageCreateWithImageInRect([[picture objectForKey:UIImagePickerControllerOriginalImage] CGImage],

这是我的代码:

CGRect rect = CGRectMake(size.width / 4, size.height / 4 , 
                         size.width / 2, size.width / 2); 

CGImageRef imageRef = CGImageCreateWithImageInRect([[picture objectForKey:UIImagePickerControllerOriginalImage] CGImage], rect);

UIImage *img = [UIImage imageWithCGImage:imageRef]; 

CGImageRelease(imageRef);
但图像会旋转


如何解决此问题?

返回原始图像UIImagePickerController原始图像。 最简单的方法是使用UIImagePickerControllerEditedImage,但在将ImagePicker设置为允许编辑之前。

原因: 每个UIImage都有一个方向,默认为UIImageOrientationUp。但您用相机拍摄的图像的方向([picture objectForKey:UIImagePickerController原始图像])并不总是UIImageOrientationUp。 因此,如果您仅使用[UIImage imageWithCGImage:]复制图像,您将丢失方向信息。 改为使用[UIImage imageWithCGImage:scale:orientation:]

F.Y.I
在常量部分,Docset为每个UIImageOrientation提供了一个示例图像。

如果您在下面添加了解决方案,或者如果您选择了下面的答案(如果它是正确的答案),那就太好了。记住,StackOverflow之所以有效,是因为人们提供的是解决方案,而不仅仅是问题。这很难算作答案。你真的应该在回答问题上多下点功夫。1.怎么做。2.为什么要这样做。3.读者在哪里可以找到更多关于这个问题的信息(参考链接)。你能在AprilKwong回答你的问题吗