2012-06-30 2 views
1

У меня есть UIImagePickerViewController и я экономлю мое изображение мое приложение только с UIImagePickerControllerOriginalImage и:UIImagePicker и UIImage размер

[self.fileManager createFileAtPath:aPath contents:UIImageJPEGRepresentation(image, 1.f) attributes:nil]; 

Результат:

  • исходное изображение из Photo.app - > 2.2 Mo
  • новое сохраненное изображение из моего приложения -> 5.3 Mo с изображением JPEG & 10.8 Mo с представлением PNG!

Так что мой вопрос довольно прост: зачем? И как достичь размера Photo.app?

Спасибо за вашу помощь :)

+0

Привет @Pierre У меня такая же проблема. После трех дней поиска в Интернете я не смог найти объяснения или решения. Вы решили? –

ответ

1

Как вы, наверное, знаете, второй параметр, передаваемый в UIImageJPEGRepresentation определяет качество сжатия (1 самый высокий). Поскольку изображение разбивается на базовые данные, а затем повторно сжимается (jpeg - это формат сжатого изображения), результатом может быть ухудшение сжатия (более крупный файл), и, конечно, качество изображения не улучшится. Попробуйте уменьшить параметр до значения от 0.0 до 1.0 и увидеть, когда вы получите наилучшее соответствие размеру файла (будет уникальным для каждого обработанного изображения, поэтому попробуйте найти хорошее значение в середине).

+0

Итак, Apple повторно сжимает изображения с Photo.app? Это означает, что у них есть две версии фотографии, которую я беру: один без сжатия и один со сжатием (для отображения). И когда я выбираю одну фотографию из своего выбора, они дают мне одно без сжатия? Это странно? – Pierre

+0

Все, что я говорю, это то, что UIImage, возвращаемый как UIImagePickerControllerOriginalImage, не является эквивалентом сохраненного изображения на устройстве, по крайней мере, не в размере файла. Единственным допустимым объяснением этого является разница в сжатии. Действительно странно, но у меня нет другой идеи, почему это произойдет. – Stavash

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