Сохранение / получение JPEG из пользовательской галереи без повторного сжатия
Я пытаюсь найти способ читать и записывать изображения в формате JPEG в пользовательскую галерею (фотоаппарат) без повторного сжатия iOS. UIImage кажется узким местом здесь. Единственный способ сохранения в пользовательской галерее I 'мы нашли 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 проходов:
Очевидно, что с каждым разом становится все хуже, но я не могt автоматизировать сборку деталей, чтобы полностью проверить ее на 50/100/1000 циклов.