Zapisywanie do / pobieranie JPEG z galerii użytkownika bez rekompresji

Próbuję znaleźć sposób na odczyt i zapis obrazów JPEG w galerii użytkownika (roll aparatu) bez ponownego kompresji iOS. UIImage wydaje się być tutaj wąskim gardłem. Jedyną metodą zapisania w znalezionej galerii użytkownika jest UIImageWriteToSavedPhotosAlbum (). Czy istnieje sposób na to?

Na razie moja rutyna wygląda tak

–Zapytaj UIImagePickerController o zdjęcie. A kiedy to zrobiłFinishPickingMediaWithInfo, wykonaj:

NSData *imgdata = [NSData dataWithData:UIImageJPEGRepresentation([info objectForKey:@"UIImagePickerControllerOriginalImage"], 1)];
[imgdata writeToFile:filePath atomically:NO];

–Proces JPEG bezstratnie na dysku.

–Następnie zapisz to:

UIImageWriteToSavedPhotosAlbum([UIImage imageWithContentsOfFile:[self getImagePath]], self, @selector(image:didFinishSavingWithError:contextInfo:), nil);

Oto niewielka animacja, jak wygląda degradacja jakości po 3 przejściach:

To oczywiście pogarsza się za każdym razem, gdy to robię, ale nie mogłem zautomatyzować części wybierania obrazu, aby w pełni przetestować go dla 50/100/1000 cykli.

questionAnswers(1)

yourAnswerToTheQuestion