我正在使用相机在IOS应用中拍照。 它是有效的,我唯一的问题是当我试图弄清楚用户在拍照时如何拿着设备。
如果我能以适当的方式显示图像,而不是倒置或旋转90度,那会好得多。
寻找解决方案让我知道我应该使用UIImage的imageOrientation但实际上:
theImage.imageOrientation is always equal to UIImageOrientationUp
我错过了什么?
我做了各种研究和实验,但没有任何改变。 此时我没有再显示任何代码,原因很简单,我不知道要显示哪个部分来帮助找到问题。
答案 0 :(得分:1)
因为我能够自己找到解决方案。我把它放在这里,以防它可能对其他人有用。
查看保存图像上“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);
……
}
然后我的照片显示方向正确,当我想稍后在我的应用程序中使用它时。