Сохранение / получение JPEG из пользовательской галереи без повторного сжатия
Я пытаюсь найти способ читать и записывать изображения в формате JPEG в пользовательскую галерею (фотоаппарат) без повторного сжатия iOS. UIImage кажется узким местом здесь. Единственный способ сохранения в пользовательской галерее, который я нашел, - это UIImageWriteToSavedPhotosAlbum (). Это можно обойти?
На данный момент моя рутина выглядит так
–Просите UIImagePickerController для фотографии. И когда он сделал FinishPickingMediaWithInfo, сделайте:
NSData *imgdata = [NSData dataWithData:UIImageJPEGRepresentation([info objectForKey:@"UIImagePickerControllerOriginalImage"], 1)];
[imgdata writeToFile:filePath atomically:NO];
- Обрабатывать JPEG без потерь на диске.
- Затем сохраните его обратно:
UIImageWriteToSavedPhotosAlbum([UIImage imageWithContentsOfFile:[self getImagePath]], self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
Вот небольшая анимация того, как выглядит ухудшение качества после 3 проходов:
Очевидно, что с каждым разом становится все хуже, но я не смог автоматизировать процесс выбора изображения, чтобы полностью проверить его на 50/100/1000 циклов.