orientation de la caméra iPhone détection
-
05-09-2019 - |
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?
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:
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!