因为我能够自己找到解决方案。我把它放在这里,以防它对其他人有用。
查看保存图像上“imageOrientation”字段的值(就像我正在做的那样),确实由于某种原因总是显示为 UIImageOrientationUp。另一方面,在 imagePickerController:didFinishPickingMediaWithInfo: 内部查看它更有意义。
经过更多的研究和试验,我最终得到了一个看起来像这样的方法:
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
……
UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];
……
if ((image.imageOrientation==UIImageOrientationLeft)||
(image.imageOrientation==UIImageOrientationRight)||
(image.imageOrientation==UIImageOrientationDown)) {
UIGraphicsBeginImageContext(image.size);
[image drawAtPoint:CGPointMake(0.0, 0.0)];
image=UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
NSData *mediaData = UIImagePNGRepresentation(image);
……
}
然后当我想稍后在我的应用程序中使用它时,我的图片显示方向正确。