Фильтрация всего, кроме определенного цвета изображения в Flex - PullRequest
1 голос
/ 06 августа 2010

Допустим, у меня есть изображение во Flex, и я хочу отфильтровать его так, чтобы были видны только зеленые пиксели ...

Например, это изображение:

альтернативный текст http://www.LiquidFeline.com/Images/Circles.png

будет отображаться на экране как:

альтернативный текст http://www.LiquidFeline.com/Images/Circles2.png

Как мне это сделать в Actionscript / Flex?

Ответы [ 2 ]

1 голос
/ 06 августа 2010

Это легко сделать с помощью метода threshold класса BitmapaData.

В основном, сделайте копию изображения. Затем сделайте каждый пиксель, не прошедший пороговый тест, полностью прозрачным. Тест в этом случае может быть pixel != your shade of green.

Пример кода:

var color:uint = 0xff22b14c;
var bmd:BitmapData = new BitmapData(image.width,image.height,true);
bmd.draw(image);
bmd.threshold(bmd,new Rectangle(0,0,image.width,image.height),new Point(0,0),"!=",color,0,0xffffffff);
addChild(new Bitmap(bmd));

Приложив немного больше работы, вы можете выделить диапазоны цветов, но для сплошного цвета, как в вашем случае, это должно быть сделано.

0 голосов
/ 06 августа 2010

Вы можете попробовать применить эффекты кеинга к классам Bitmap и BitmapData.Смотрите учебное пособие на http://cnx.org/content/m34463/latest/

...