У меня массивный UIImage, загруженный с веб-ресурса (> 300 МБ), который при попытке визуализации вызывает сбои приложения из-за памяти. Я пытаюсь изменить размер изображения, используя следующий код:Изменение размера UIImage по ограничениям памяти
+ (UIImage *)imageWithImage:(UIImage *)image scaled:(float) scale {
//UIGraphicsBeginImageContext(newSize);
CGSize size = (CGSize){scale * image.size.width, scale * image.size.height};
UIGraphicsBeginImageContextWithOptions(size, NO, 0.0);
[image drawInRect:CGRectMake(0, 0, size.width, size.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
Проблема заключается в том, как вы уже догадались, что это требует фактически рендеринга изображения и, таким образом, приводит к тому же аварии. Есть ли способ изменить размер большого изображения, не создавая такого огромного напряжения памяти в системе?
есть причина, по которой вы не загружаете плитки изображений?!? – Wain
Да, я получаю изображение в целом как закодированная base64 строка – Iowa15