Удалить цвет из растрового изображения?

Я пытаюсь удалить цвет из изображения, импортированного (JPG) в Flash CS4 с AS2.

У меня есть куча изображений JPG, загруженных при запуске, которые содержат цвет (кричащий зеленый 0,255,0), который я хочу удалить, чтобы видеть сквозь него.

JPG не поддерживает альфа-канал, и я не думаю, что флэш-память добавляет альфа-слой к загруженному файлу?

Если загруженное изображение имеет альфа-слой, я мог бы установить альфа на 0 для каждого пикселя, но я понятия не имею, как действовать дальше...

Кто-нибудь знает как? или просто, если это возможно? или любая идея о том, как этого добиться?

Большое спасибо


person Legogo    schedule 27.08.2009    source источник


Ответы (1)


Что вам нужно сделать, так это загрузить данные в объект BitmapData. Вы делаете это так:

var bitmapData:BitmapData = new BitmapData(image._width, image._height, true);
bitmapData.draw(image);

Затем вам нужно использовать пороговый метод, чтобы заменить зеленый на другой цвет. Это очень мощный метод, хотя и немного сложный в использовании.

bitmapData = bitmapData.threshold(bitmapData, new Rectangle(0, 0, image._width, image._height), new Point(0, 0), "==", 0x00CCCCCC, 0x000000FF, 0x00FF0000, false);

Наконец, вы нарисуете BitmapData в объект Bitmap, который хотите отобразить.

person Branden Hall    schedule 28.08.2009