Определение ориентации камеры iPhone - PullRequest
1 голос
/ 25 мая 2009

Я получаю противоречивые результаты в зависимости от того, получаю ли я изображение непосредственно с камеры при обратном вызове или выбираю его из списка камер.

В методе обратного вызова UIImagePickerControllerDelegate UIImage.imageOrientation отображается как UIImageOrientationRight независимо от того, как делается снимок.

При считывании с камеры снимается пейзажный снимок (повернутый влево) UIImageOrientationUp, а портретный снимок UIImageOrientationRight.

Как можно надежно получить ориентацию камеры в обеих ситуациях?

Ответы [ 3 ]

3 голосов
/ 23 сентября 2010

Я разместил это на форумах Apple и получил объяснение:

«Камера на самом деле является альбомной, поэтому вы поднимаетесь или опускаетесь при съемке в альбомной ориентации, а влево или вправо - при портретной съемке (в зависимости от того, как вы держите устройство).»

См:

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

Спасибо:

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

0 голосов
/ 08 сентября 2010

Я попробовал свойство imageOrientation после того, как был сделан снимок, это забавно, потому что у меня испорчены значения ориентации. Например, «Вверх» - «Влево», «Вниз» - «Вправо», «Влево» - «Вниз», а «Вправо» - «Вверх».

- (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

0 голосов
/ 25 июня 2009

Я прочитал где-то , что UIImagePickerController не включает прослушивание событий аппаратной ориентации, поэтому вам может потребоваться вызвать

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

, прежде чем снимать изображения в собственном приложении. Я собираюсь попробовать себя в этом, поэтому надеюсь, что это сработает!

...