Вариант 0 - Убедитесь, что вы рисуете только тогда, когда вам нужно рисовать, и только то, что вам нужно сделать.
Вариант 1
Если вы знаете размер назначения (возможно self.frame.size
?), Вы можете создать одно изображение из двух исходных изображений (расплющить) в размере назначения и избегайте интерполяции. Так что мог:
- Снизить памяти вам нужно
- Снизить количество изображений, вы должны рисовать
- Избегайте интерполяции (High CPU, если вы хотите, чтобы хорошо выглядеть)
- Посмотрите лучше - композитный может использовать интерполяцию высокого качества.
Конечно, это имеет смысл только тогда, когда композит изменяется на частоте ниже, чем он должен быть нарисован.
Вариант 2
Даже если вы хотите два изображения, и вы знаете, их размеры не изменятся, просто изменить их размера до размера они должны быть обращены на (ну, контролировать использование памяти, если вы увеличивать их).
Вариант 3
Если это не вариант, вы можете изменить состояние по CGContext
«s, а также снизить качество интерполяции. Если вы привыкли к подобным преобразованиям CALayer, вы, вероятно, удовлетворены низким качеством или без интерполяции.
Почему вы пытаетесь объединить два изображения? И что означает «слишком медленно»? Вы нажимаете на большое количество пикселей. –
Самый быстрый способ слияния изображений - избегать их слияния, когда вам это не нужно. Например, вы можете объединить один раз, кэшировать результат и повторно использовать изображение с этого момента, пока не изменится одно из изображений с предварительным объединением. – dasblinkenlight
@KevinBallard Потому что мне это нужно. – Umgre