Как я могу легко изменить общую непрозрачность растрового контекста с помощью Quartz2D?

Я хотел бы создать эффект затухания с одним из моих растровых контекстов, который я использую для рисования статического изображения в одном из моих представлений. Каков простой способ настроить общую непрозрачность контекста растрового изображения на лету, прежде чем я отобразлю его в представлении?

Большое спасибо заранее за вашу помощь! Я собираюсь продолжить исследование этого прямо сейчас.


person BeachRunnerFred    schedule 23.06.2010    source источник


Ответы (2)


Если вы рисуете контекст (как изображение) в другом контексте, вы можете использовать это в целевом контексте:

CGContextSetAlpha( otherContext , ... );

Если в противном случае контекст не изменится, вы можете просто затенить вид (или слой), в котором он нарисован:

view.alpha = ...;
view.layer.opacity = ...;
person drawnonward    schedule 23.06.2010

Вы можете использовать CGContextSetAlpha() перед рисованием CGImageRef (и сохранить и восстановить состояние контекста вокруг этого рисунка), чтобы изменить альфа-канал изображения по мере его рисования.

Однако вы, скорее всего, добьетесь лучшей производительности, поместив изображение в его собственное представление (например, с помощью UIImageView) и используя анимацию для настройки непрозрачности.

person beeeefy    schedule 06.11.2010