Возможно, на этот или подобный вопрос уже отвечали, но как его сформулировать для поиска я не знаю.
Дано изображение с альфа-каналом. Для простоты, пусть оно будет не цветное. Для еще большей простоты пусть даже будет не градациями серого, а просто ч/б, но с байтовым альфаканалом. Но это для простоты понимания проблемы, но не более того.
Задача: поменять цвет изображения.
Что я тут понимаю под сменой цвета: надо поменять цвет в rgb-каналах и отмасштабировать альфу для каждого пикселя.
Пример: был пиксель 255, 255, 255, 128. Применяем к нему смену цвета на: 128,128,128,128. Итоговый цвет пикселя должен быть таковым: 128, 128, 128, 64.
Цвет в примере задан в формате RGBA.
Пробую сформулировать задачу еще раз:
Сначала нужно залить всё изображение прямоугольником, цвет которого задан, а заливка должна происходить умножением. Т.е. умножаем цвет исходного пикселя на цвет прямоугольника.
Надеюсь, понятно объяснил суть.
Добавлено через 14 минут
Черт, кажется, нашёл то, что мне нужно

Насколько я понял, решение следующее:
Когда нам нужно куда-то перекопировать BitmapData, изменив цвет или еще что-либо, мы можем сделать Draw, который и отрендерит один BitmapData в другой. В этой функции есть параметр ColorTransform, который и отвечает за то, что я хочу.
Интересно, как быстро оно всё работает?..
Добавлено через 34 минуты
И еще спрошу: стандартных функций в ActionScipt по переводу цвета из RGBA формата в его uint нету, что ли? В принципе-то, дело не сложное, просто будет странно узнать, что такую функцию не впихнули в станд. поставку.