Question

Je reçois des résultats incohérents selon que je reçois l'image directement depuis l'appareil dans le rappel ou le choisir à partir du rouleau de la caméra.

Dans la méthode de rappel de UIImagePickerControllerDelegate, le UIImage.imageOrientation vient comme UIImageOrientationRight, peu importe la façon dont la photo est prise.

Lors de sa lecture du rouleau de la caméra, un coup de paysage (tourné à gauche) arrive UIImageOrientationUp alors qu'un coup de portrait arrive UIImageOrientationRight.

Comment puis-je obtenir de manière fiable l'orientation de la caméra dans les deux situations?

Était-ce utile?

La solution

Je posté sur les forums d'Apple, et a obtenu l'explication:

« La caméra est en fait natif du paysage, de sorte que vous vous levez ou vers le bas lorsque vous prenez une photo dans le paysage et à gauche ou à droite lorsque vous prenez une photo en mode portrait (selon la façon dont vous tenez l'appareil). »

Voir:

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

Merci:

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

Autres conseils

J'ai essayé la propriété imageOrientation après la photo a été prise, il est drôle parce que j'ai les valeurs d'orientation foiré. Up est à gauche, vers le bas est droite, la gauche est bas et à droite est en place, par exemple, si je tiens l'iPhone « Up » (position normale), alors imageOrientation est « 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;
     }
}

Actuellement, je suis en utilisant 4.1 SDK GM (xcode_3.2.4_and_ios_sdk_4.1_gm_seed) ciblage pour iOS 3.1

J'ai lu quelque part que le UIImagePickerController ne tourne pas l'écoute des événements d'orientation du matériel, il vous faudra peut appeler

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

avant de capturer des images dans votre propre application. Je suis sur le point d'aller faire un essai avec moi-même, donc j'espère que ça marche!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top