Метод рисования растровых данных - замена несуществующих пикселей синим цветом - PullRequest
0 голосов
/ 24 июня 2010

У меня есть Спрайт, который имеет форму выпуклого многоугольника (не прямоугольного).
Если я сделаю снимок с помощью:

var bmd:BitmapData = new BitmapData(width,height);  
bmd.draw(someSprite,someMatrix,null,null,null);

Я получаю изображение, подобное этому:

Click here to see the image

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

Итак, когда я сделал снимок выпуклого многоугольного спрайта
используя метод draw класса BitmapData, я получил красный треугольник
с белым эллипсом внутри и для остальной части области я получил пиксели.

Я хочу заменить эти внешние белые пиксели на пиксели синего цвета.

Как мне это сделать?

1 Ответ

0 голосов
/ 24 июня 2010

Вы можете использовать метод BitmapData.floodFill(). Он работает так же, как «инструмент заливки».

Осталось только найти пиксель внутри белой области, которую вы хотите заменить. Например, если вы уверены, что всегда будет иметь белую рамку вокруг спрайта, вы можете предположить, что верхний левый пиксель является идеальным местом. Тогда это решит проблему:

bmd.floodFill(0, 0, 0xff0000ff); //note that the color is in ARGB format.

Если вы не можете этого допустить, проблема не в заполнении белой области, а в ее поиске. Тогда нам нужно больше узнать о вашей проблеме. Мы не могли бы просто проходить по границам в поисках белых пикселей, например, это может быть средний эллипс.

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