Ich verwende -writeImageToSavedPhotosAlbum
, um Bilder an die Fotobibliothek zu senden. Das Problem, das ich habe, ist, dass trotz der Angabe einer Orientierung, die Bilder mit den falschen Orientierungen enden.
Tatsächlich scheint es, dass diejenigen, die auf AVCaptureVideoOrientationPortrait
ausgerichtet sind, wie AVCaptureVideoOrientationPortraitUpsideDown
aussehen.
und AVCaptureVideoOrientationLandscapeLeft
sehen wie AVCaptureVideoOrientationLandscapeRight
aus und umgekehrt.
Gibt es einen Grund, warum das passiert? Hier sind einige weitere Details:
Ich habe keinen ViewController, der die automatische Ausrichtung für meine Ansicht ändert.
Alle Bilder zeigen [image imageOrientation]
gleich AVCaptureVideoOrientationPortrait
, aber ich verfolge die tatsächliche Ausrichtung und übergebe diese unabhängig voneinander an -writeImageToSavedPhotosAlbum
.
Ich verwende: -writeImageToSavedPhotosAlbum:orientation:completionBlock:
Ich würde es begrüßen, wenn jemand etwas Licht darauf werfen könnte.
UPDATE:
Trotz was ich in der Dokumentation gelesen habe,
Wenn Sie ein UIImage-Objekt speichern möchten, können Sie die UIImage-Methode verwenden CGImage, um einen CGImageRef zu erhalten und die imageOrientation des Bildes auf ALAssetOrientation.
Ich ging voran und änderte meine Orientierung:
%Vor%Nun werden alle Bilder mit ihrer linken Kante nach unten ausgerichtet, als ob sie landschaftsrichtig wären. Ich habe es immer noch nicht richtig, aber zumindest habe ich sie einheitlich ausgerichtet.
Ein weiteres UPDATE:
Das funktioniert. Warum, ich weiß es nicht:
%Vor%Sie haben dieses Problem, weil UIDeviceOrientation und ALAssetOrientation unterschiedliche Aufzählungswerte haben. Überprüfen Sie die Definition für beide enum unten:
%Vor%Also für UIDeviceOrientationUnknown das gleiche wird UIDeviceOrientationUnknown (int Wert 0); für das UIDeviceOrientationPortrait ist gleich ALAssetOrientationDown (int Wert 1) und so weiter
Tags und Links ios avfoundation