0

我有一个 Sprite,它的形状是凸多边形(不是矩形)。
如果我使用以下方式拍摄其快照:

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

我得到这样的图像:

点击这里查看图片

在这张图片中,我自己添加了绿色边界,只是为了显示
图像的尺寸。


因此,当我使用 BitmapData 类的 draw 方法对凸多边形形状的精灵进行快照时,我得到了一个
内部有一个白色椭圆的红色三角形,而对于其余区域,我得到了 while 像素。

我想用蓝色像素替换那些外部白色像素。

我该怎么做?

4

1 回答 1

0

您可以使用该BitmapData.floodFill()方法。它就像“油漆桶工具”一样工作。

剩下的就是在要替换的白色区域内找到一个像素。例如,如果您确定精灵周围总是存在白色边框,您可以假设左上角的像素是一个完美的位置。这样做可以解决问题:

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

如果你不能假设,问题不在于填充白色区域,而是找到它。那时我们需要更多地了解您的问题。例如,我们不能只遍历边界寻找白色像素,因为它们实际上可能是中间椭圆。

于 2010-06-24T15:20:51.787 回答