AVFoundation die Ausrichtung der Bilder aus um 90 Grad in der Vorschau, aber fein in der Kamera roll
Wirklich etwas seltsam, ist passiert, ich bin versucht, ein Bild mit AVFoundation, die Kamera roll, Bild scheint ganz gut, aber das Bild als Vorschau, hat das Bild um 90 Grad gedreht.
Dies ist der code, den ich benutze, um ein Bild aufzunehmen
AVCaptureConnection *videoConnection = nil;
for (AVCaptureConnection *connection in stillImageOutput.connections)
{
for (AVCaptureInputPort *port in [connection inputPorts])
{
if ([[port mediaType] isEqual:AVMediaTypeVideo] )
{
videoConnection = connection;
break;
}
}
if (videoConnection)
{
break;
}
}
//NSLog(@"about to request a capture from: %@", stillImageOutput);
[stillImageOutput captureStillImageAsynchronouslyFromConnection:videoConnection completionHandler: ^(CMSampleBufferRef imageSampleBuffer, NSError *error)
{
CFDictionaryRef exifAttachments = CMGetAttachment( imageSampleBuffer, kCGImagePropertyExifDictionary, NULL);
if (exifAttachments)
{
//Do something with the attachments.
//NSLog(@"attachements: %@", exifAttachments);
} else {
NSLog(@"no attachments");
}
NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageSampleBuffer];
UIImage *image = [[UIImage alloc] initWithData:imageData];
self.vImage.image = image;
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
}];
- Warum hat die bekommst auch ein vote down by the way? ist die Lösung trivial ist? wenn es ist, bitte erleuchte mich! Dies ist ein Ort, um zu lernen, nicht gemieden werden. Ich versuche mein bestes, zu lernen, wie hätten Sie an einem gewissen Punkt der Zeit!
- Haben dieses Album, was richtig funktioniert, wenn ja dann bitte teilen Sie diese mit uns
Du musst angemeldet sein, um einen Kommentar abzugeben.
ja ,es passiert, wenn Sie capture Bild im Hochformat von Ihrem Gerät und verwenden Sie dieses Bild in Ihre Anwendung, da die Standard-Ausrichtung der Bild-Landschaft in jedem IOS-Gerät, so müssen Sie ändern Sie die Ausrichtung des Bildes nach dem pflücken aus der Galerie zu verwenden in Ihrem app.
Ich habe code, um dies zu erreichen
Objective-C-code
Swift-code
Swift 3.0
Die akzeptierte Antwort, die funktioniert, aber ist viel komplizierter, als es sein muss. Sie können Folgendes verwenden, um das Bild zu drehen.
Nur das Bild drehen, und nicht Pflanzen, können Sie einfach rufen Sie es wie folgt:
UIImage
von derNSData
Objekt mit[[UIImage alloc] initWithData:data]
Dipen Panchasara s Antwort ist Super, aber es könnte ein problem mit ihm. Bei der Bearbeitung großer Bilder (zum Beispiel von iPhoneX) es wird massive Speicher-peak, die ein Problem in einigen Fällen.
So, möchten Sie vielleicht zu ändern, dass die Zeile:
etwas mit einigen Speicher-Optimierung. Zum Beispiel, dass eine Unterbrechung Bild-Zeichnung mit 16 (4*4) Schritte, die Abnahme der Speicherverbrauch deutlich:
Beachten Sie, dass in diesem Fall die Höhe und Breite des Bildes werden muss, geteilt durch 4.