Detecting iPhone Kameraausrichtung
-
05-09-2019 - |
Frage
Ich erhalte inkonsistente Ergebnisse je nachdem, ob ich das Bild direkt von der Kamera in dem Rückruf erhalten oder von der Kamerarolle wählen.
In der UIImagePickerControllerDelegate
Callback-Methode, die UIImage.imageOrientation
kommt als UIImageOrientationRight
egal, wie das Foto aufgenommen wird.
Wenn es von der Camera Roll zu lesen, eine Landschaftsaufnahme (nach links gedreht) aufkommt UIImageOrientationUp
während eines Porträt Schuss kommt UIImageOrientationRight
.
Wie kann ich zuverlässig die Kameraausrichtung in beiden Situationen bekommen?
Lösung
ich gepostet die Apple-Foren, und bekam die Erklärung:
„Die Kamera ist eigentlich Landschaft heimisch, so erhalten Sie nach oben oder unten, wenn Sie ein Bild im Quer nehmen und nach links oder rechts, wenn Sie ein Bild im Hochformat nehmen (je nachdem, wie Sie das Gerät halten).“
Siehe auch:
https://devforums.apple.com/message/301160#301160
Danke:
Andere Tipps
Ich habe die imageOrientation Eigenschaft versucht, nachdem das Bild aufgenommen wurde, es ist lustig, weil ich die Orientierungswerte vermasselt haben. Up ist links, unten rechts ist, links ist nach unten und rechts oben ist, zum Beispiel, wenn ich das iPhone „Up“ (die normale Position) halte dann imageOrientation ist „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;
}
}
Derzeit bin ich mit 4.1 SDK GM (xcode_3.2.4_and_ios_sdk_4.1_gm_seed) Targeting für iOS 3.1
Ich habe irgendwo dass die UIImagePickerController schaltet sich nicht ein zu Hardware Orientierungsveranstaltungen zu hören, so müssen Sie
nennen[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
, bevor Sie Bilder in Ihrem eigenen App erfassen. Ich bin zu gehen zu versuchen, dies selbst zu testen, so dass ich hoffe, es funktioniert!