Я хотел загрузить и отобразить изображение ( .jpg, .png) большого размера, например. 1800x1200 или 2000x1800 (ширина х высота).
Если я отображаю изображения такого большого размера (1800x1200 или 2000x1800) в UIImageView, это также потребляет много памяти, и приложение выходит из строя.
Также в соответствии с документацией Apple (http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIImage_Class/Reference/Reference.html),) следует избегать создания объектов UIImage, размер которых превышает 1024 x 1024.
Одним из решений является изменение размера изображения. Я применил логику для изменения размера изображения, используя следующий код.
UIGraphicsBeginImageContext( newSize );
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Это прекрасно работает и изменяет размер изображения. Но когда он загружает большое изображение в контексте устройства для изменения размера, он потребляет много памяти на секунду и из-за этого происходит сбой приложения.
Так что этот подход не работает. Пожалуйста, поделитесь, если у вас есть лучший подход, чтобы изменить размер без сбоев.
Также в этой (http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIImage_Class/Reference/Reference.html) ссылке) Apple сказала, что
"Вам следует избегать создания объектов UIImage, размер которых превышает 1024 x 1024. Помимо большого объема памяти, которое может занимать такое изображение, у вас могут возникнуть проблемы при использовании изображения в качестве текстуры в OpenGL ES или при рисовании изображение к представлению или слою. Это ограничение размера не применяется, если вы выполняете манипуляции на основе кода, такие как изменение размера изображения больше, чем 1024 x 1024 пикселей, путем рисования его в растровом графическом контексте. необходимо изменить размер изображения таким образом (или разбить его на несколько меньших изображений), чтобы нарисовать его в одном из ваших видов. ".
Может кто-нибудь подробнее рассказать о "This size restriction does not apply if you are performing code-based manipulations, such as resizing an image larger than 1024 x 1024 pixels by drawing it to a bitmap-backed graphics context."
? Как нарисовать изображение в растровом графическом контексте? Что такое растровый графический контекст? Это помогло бы мне, если бы кто-нибудь мог поделиться примером кода.
Заранее спасибо !!