检测iPhone相机方向

时间:2009-05-25 03:29:04

标签: iphone ios objective-c camera uiimage

我得到的结果不一致取决于我是在回调中直接从相机获取图像还是从相机胶卷中选择它。

UIImagePickerControllerDelegate回调方法中,无论照片如何拍摄,UIImage.imageOrientation都会显示为UIImageOrientationRight

当从相机胶卷上读取时,当拍摄人像时UIImageOrientationUp出现UIImageOrientationRight风景照(左转)。

如何在两种情况下可靠地获取相机方向?

3 个答案:

答案 0 :(得分:3)

我把它发布到了Apple论坛,得到了解释:

“相机实际上是横向原生的,因此当您拍摄横向照片时,您可以向上或向下拍摄,当您拍摄照片时,可以向左或向右拍摄(取决于您握住设备的方式)。”

请参阅:

https://devforums.apple.com/message/301160#301160

感谢:

https://devforums.apple.com/people/Rincewind

答案 1 :(得分:0)

我拍完照片后尝试了imageOrientation属性,这很有趣,因为我的方向值搞砸了。 Up为Left,Down为Right,Left为Down,Right为Up,例如,如果我按住iPhone“Up”(正常位置),则imageOrientation为“UIImageOrientationRight”。

- (void)imagePickerController:(UIImagePickerController *)picker
  didFinishPickingImage:(UIImage *)image
      editingInfo:(NSDictionary *)editingInfo {
    switch (image.imageOrientation) {
      case UIImageOrientationUp: //Left
       break;
      case UIImageOrientationDown: //Right
       break;
      case UIImageOrientationLeft: //Down
       break;
      case UIImageOrientationRight: //Up
       break;
      default:
       break;
     }
}

目前我正在使用4.1 SDK GM(xcode_3.2.4_and_ios_sdk_4.1_gm_seed)定位iOS 3.1

答案 2 :(得分:-1)

我已阅读somewhere UIImagePickerController未启用侦听硬件方向事件,因此您可能需要调用

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

在您自己的应用中捕获图像之前。我准备去试试这个,所以我希望它有效!