Próbuję znaleźć sposób na odczyt i zapis obrazów JPEG do galerii użytkownika (rolka z aparatu) bez ponownego kompresowania przez iOS. UIImage wydaje się być wąskim gardłem. Jedyną metodą zapisania do galerii użytkownika, którą znalazłem, jest UIImageWriteToSavedPhotosAlbum(). Czy istnieje sposób obejścia tego?Zapisywanie/pobieranie JPEG z galerii użytkownika bez rekompresji
Teraz moja rutyna wygląda to
-Ask UIImagePickerController o zdjęcie. A kiedy didFinishPickingMediaWithInfo, zrobić:
NSData *imgdata = [NSData dataWithData:UIImageJPEGRepresentation([info objectForKey:@"UIImagePickerControllerOriginalImage"], 1)];
[imgdata writeToFile:filePath atomically:NO];
-Process bezstratnie JPEG na dysku.
-Potem zapisać go z powrotem:
UIImageWriteToSavedPhotosAlbum([UIImage imageWithContentsOfFile:[self getImagePath]], self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
Oto maleńka animacja co degradacja jakości wygląda po 3 podań:
To oczywiście pogarsza się za każdym razem to zrobić , ale nie mogłem zautomatyzować części do pobierania obrazów, aby w pełni przetestować ją pod kątem cykli 50/100/1000.
Tak, dziękuję, już dowiedziałem się o tej sztuczce z AssetsLibrary. Mam nadzieję, że twoja odpowiedź będzie pomocna dla innych. – Kai