Ich versuche, JPEG-Bilder in der Benutzergalerie (Kamera-Rolle) zu lesen und zu schreiben, ohne dass iOS sie erneut komprimiert. UIImage scheint hier der Flaschenhals zu sein. Die einzige Methode zum Speichern in der Benutzergalerie, die ich gefunden habe, ist UIImageWriteToSavedPhotosAlbum(). Gibt es einen Weg dahin?Speichern/Abrufen von JPEG aus der Benutzergalerie ohne erneute Komprimierung
Vorerst meine Routine sieht wie folgt aus
-Fragen UIImagePickerController für ein Foto. Und wenn es didFinishPickingMediaWithInfo, tun:
NSData *imgdata = [NSData dataWithData:UIImageJPEGRepresentation([info objectForKey:@"UIImagePickerControllerOriginalImage"], 1)];
[imgdata writeToFile:filePath atomically:NO];
-Prozess JPEG verlustlos auf dem Datenträger.
-Dann speichern zurück:
UIImageWriteToSavedPhotosAlbum([UIImage imageWithContentsOfFile:[self getImagePath]], self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
Hier eine kleine Animation, was Abbau sieht aus wie nach 3 Durchgängen Qualität:
Es wird offensichtlich jedes Mal, wenn ich dies tun schlimmer , aber ich konnte den Bildaufnahmeteil nicht automatisieren, um ihn vollständig auf 50/100/1000 Zyklen zu testen.
Ja, danke, ich habe diesen Trick mit AssetsLibrary bereits herausgefunden. Ich hoffe, Ihre Antwort wird anderen helfen. – Kai