2016-06-06 6 views
0

Я получаю UIImage от UIImagePickerController:UIImage размера фактического размера

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    UIImage * originalImage = [info objectForKey:UIImagePickerControllerOriginalImage]; 

    NSData *imageData = [[NSData alloc] initWithData:UIImageJPEGRepresentation((originalImage), 1.0)]; 
    NSUInteger length = imageData.length; 
    [[self fileSizeLabel] setText:[NSString stringWithFormat:@"File Size : %@",[NSByteCountFormatter stringFromByteCount:imageData.length countStyle:NSByteCountFormatterCountStyleFile]]]; 

    [self dismissViewControllerAnimated:YES completion:nil]; 
} 

Проблемы длина больше, чем само изображение size.for например, реального размер изображения составляет 1,2 МБ и в этой функции я получаю 9.0 MB.

Почему размер изображения не совпадает с реальным изображением?

+0

Вы говорите, что originalImage.size составляет 9 МБ? и одно и то же изображение на устройстве составляет 1,2 МБ? –

+0

Вы просто считаете длину NSData следующим образом. [[self fileSizeLabel] setText: [NSString stringWithFormat: @ "Размер файла:% d", [imageData length]]; – Charles

ответ

0

Это похоже на дубликат When i am using UIImagePNGRepresentation or UIImageJPEGRepresentation for converting UIImage into NSdata, the image size is too much increased.

По-видимому, исходное изображение уже может быть сжато - какой тип файла? UIImageJPEGRepresentation распаковывает изображение и пересчитывает его в JPEG-представление. Если исходное изображение было сжато до более низкого качества, чем максимальное качество представления JPEG, новый формат будет иметь больший размер.

Смежные вопросы