запазването на UIImage във файл струва много време

Опитвам се да заредя снимки в приложението iPhone Photos, след което да запазя избраните снимки в папката на приложението си, използвайки ALAssetsLibrary, и имам два проблема: 1. файлът с изображение, записан на диска, е много по-голям от оригиналните файлове в приложението Photos, за например една снимка е 2,8MB, но след като бъде запазена в папката на приложението ми, тя е 6,4MB, следният е кодът:

        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 MB изображение във файл) струва около 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 MB, ще опитам да намаля качеството. - person disorderdev; 10.09.2010
comment
hoho, нещо интересно, когато използвам UIImageJPEGRepresentation(image1, 0.5), записаният файл е 1.4MB, това е само половината от размера на оригиналния файл (2.8MB), след което използвам UIImageJPEGRepresentation(image1, 0.9), записаният файл е 3.5MB,:), както и да е, приемливо е, реших да използвам 0.9, някой има ли по-добро предложение? - person disorderdev; 10.09.2010