сохранение UIImage в файл требует много времени

Я пытаюсь загрузить изображения в приложение «Фотографии iPhone», а затем сохранить выбранные изображения в папку моего приложения с помощью ALAssetsLibrary и столкнуться с двумя проблемами: 1. файл изображения, сохраненный на диск, намного больше, чем исходные файлы в приложении «Фотографии», для например, изображение имеет размер 2,8 МБ, но после сохранения в папке моего приложения оно составляет 6,4 МБ, следующий код:

        CGImageRef cgImage = [localPhoto thumbnail];

        NSString *path = @"/documents/test/1.jpeg";//the path is just an example
        BOOL succ;
        UIImage *image1 = [UIImage imageWithCGImage:cgImage];

        NSData *data1 = UIImageJPEGRepresentation(image1, 1.0);
        succ = [data1 writeToFile:path atomically:YES];
  1. приведенный выше код (сохранение изображения размером 6,4 МБ в файл) занимает около 1,6 секунды, это нормально? есть ли способ сделать это быстрее?

person disorderdev    schedule 09.09.2010    source источник
comment
Я не могу учесть время, которое это занимает, но качество изображения 1.0 может быть выше, чем исходное изображение, и это может объяснить разницу в размере. Я знаю, что при синхронизации экрана для моих iPhotos создаются оптимизированные версии изображений. Интересно, есть ли версия, оптимизированная для экрана, добавленная в метаданные или что-то в этом роде?   -  person Peter DeWeese    schedule 09.09.2010


Ответы (1)


Попробуйте использовать PNG-представление изображения.

NSData *data1 = UIImagePNGRepresentation(image1);

либо уменьшите качество изображения или JPG.

NSData *data1 = UIImageJPEGRepresentation(image1, 0.5);
person Anil Sivadas    schedule 09.09.2010
comment
Я сделал это, UIImagePNGRepresentation создаст файл намного большего размера, более 10 МБ, я попытаюсь уменьшить качество. - person disorderdev; 10.09.2010
comment
хохо, кое-что интересное, когда я использую UIImageJPEGRepresentation(image1, 0.5), сохраненный файл составляет 1,4 МБ, это всего лишь половина размера исходного файла (2,8 МБ), затем я использую UIImageJPEGRepresentation(image1, 0.9), сохраненный файл 3,5 МБ, :) в любом случае, это приемлемо, я решил использовать 0,9, у кого есть лучшее предложение? - person disorderdev; 10.09.2010