2016-12-14 2 views
4

У меня есть расширение общего доступа, которое позволяет обрезать изображение, а затем загружать его в наш сервис. Мы вызываем UIImageJPEGRepresentation, чтобы получить данные изображения, прежде чем загружать их, но вызывает сбой из-за чрезмерной памяти. Это происходит только с большими изображениями и (насколько мы можем сказать) на SE, а didReceiveMemoryWarning не вызывается первым. Это происходит при использовании приложения «Фотографии».UIImageJPEGПреобразование сбоев в расширении Share на iPhone SE

Есть ли все-таки безопасно позвонить UIImageJPEGRepresentation или попытаться определить, слишком ли велико изображение?

+0

Рассматривали ли вы просто получение URL-адреса изображения вместо загрузки всего изображения в память? – eshirima

+0

Пользователь может обрезать фотографию перед ее загрузкой, так что мы конвертируем данные - это 'UIImage', созданный из' CGContext'. – rob

+0

@rob Вы когда-нибудь находили решение? Борясь с этим. – rocky

ответ

0

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

let image: Data = UIImagePNGRepresentation(image) 
var imageSize: Double = (image.length)/1024 // in KB 
+0

'UIImagePNGRпредпредставление' также вызывает сбой – rob

+0

@rob вы можете опубликовать заброшенную ошибку? Наряду с этим, вы можете создать образец репозитория Github, содержащий вашу проблему, чтобы я мог отлаживать ваш код. – eshirima

+0

@eshirima из-за исключения памяти – Suresh

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