Предвидеть UIImageJPEGПредставить размер изображения перед конвертацией - PullRequest
2 голосов
/ 27 апреля 2011

Когда вы выбираете изображение для отправки по электронной почте с помощью библиотеки фотографий iPhone, это позволяет вам выбрать размер изображения (низкий, средний, высокий). Мой вопрос: как он рассчитывает окончательный размер изображения? Я пытаюсь сделать что-то похожее, но если я на самом деле делаю преобразование с использованием разных степеней сжатия (UIImageJPEGRepresentation), процесс будет очень медленным. Я предполагаю, что Apple делает какое-то приближение к исходному размеру PNG. Какие-нибудь мысли?

Пример медленной версии:

float size =  [UIImagePNGRepresentation(self.image) length]/1024.0/1024.0;

NSString *high = [NSString stringWithFormat:@"High (%.2f %@)",size > 1 ? size : size * 1024.0,size > 1 ? @"MB" : @"KB"];

size =  [UIImageJPEGRepresentation(self.image,0.9) length]/1024.0/1024.0;

NSString *medium = [NSString stringWithFormat:@"Medium (%.2f %@)",size > 1 ? size : size * 1024.0,size > 1 ? @"MB" : @"KB"];

и т.д.

...