Мне нужно работать со многими изображениями, и я не могу держать все их как UIImage в памяти, потому что они слишком велики.
Мне также нужно изменить цвета изображения и объединить их на лету.
Создание UIImage из базовых NSData, изменение цвета и объединение их, когда в памяти не может быть много изображений, выполняется довольно медленно.(насколько я могу получить)
Я подумал, что, возможно, я смогу сохранить базовый CGLayerRef (для изображения, которое будет объединено) и CGContextRef (полученное объединенное изображение).
Я новичок в мире рисования и не уверен, что CGLayerRef или CGContextRef меньше в памяти, чем сам UIImage.
Недавно я слышал, что изображение w * h занимает в памяти w * h * 4 байта.
CGLayerRef или CGContextRef также занимают столько памяти?
Спасибо
Ниже приводится стратегия, о которой я думаюснизить потребление памяти и вычислительное время.
CGLayerRef layer = CGLayerCreateWithContext(self.bitmapContext, self.frame.size, NULL);
CGContextRef layerContext = CGLayerGetContext(layer);
CGContextDrawImage(layerContext, self.bounds, image.CGImage);
store 'layer' somewhere.
possibly destroy layerContext