Individuare l'orientamento della fotocamera iPhone
-
05-09-2019 - |
Domanda
sto ottenendo risultati inconsistenti a seconda se ottengo l'immagine direttamente dalla fotocamera nel callback o scegliendolo dal rullino fotografico.
Nel metodo UIImagePickerControllerDelegate
di callback, il UIImage.imageOrientation
apparirà come UIImageOrientationRight
non importa come viene scattata la foto.
Durante la lettura fuori dal Rullino fotografico, un colpo di paesaggio (girato a sinistra) viene in su UIImageOrientationUp
mentre un ritratto viene in su UIImageOrientationRight
.
Come posso ottenere in modo affidabile l'orientamento della fotocamera in entrambe le situazioni?
Soluzione
ho postato questo ai forum di Apple, ed ha ottenuto la spiegazione:
"La telecamera è in realtà del paesaggio nativo, in modo da ottenere l'alto o verso il basso quando si scatta una foto nel paesaggio e sinistra oa destra quando si scatta una foto in modalità ritratto (a seconda di come si tiene il dispositivo)."
See:
https://devforums.apple.com/message/301160#301160
Grazie:
Altri suggerimenti
Ho provato la proprietà imageOrientation dopo che la foto è stata scattata, è divertente perché ho i valori di orientamento incasinato. Up è sinistra, giù è di destra, sinistra verso il basso e destra è verso l'alto, per esempio, se tengo iPhone "Up" (posizione normale) allora 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;
}
}
Attualmente sto usando 4.1 SDK GM (xcode_3.2.4_and_ios_sdk_4.1_gm_seed) mira per iOS 3.1
Ho letto qualche parte che l'UIImagePickerController non si accende l'ascolto di eventi di orientamento hardware, quindi potrebbe essere necessario chiamare
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
prima di acquisire le immagini nella vostra app. Sto per andare provare testare questo me stesso, quindi spero che funziona!