位图数据绘制方法 - 用蓝色替换不存在的像素

时间:2010-06-24 12:23:52

标签: flex actionscript-3 snapshot bitmapdata

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

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

我得到的图像是这样的:

Click here to see the image

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

所以,当我拍摄凸多边形精灵的快照时  使用BitmapData类的draw方法,我得到一个红色三角形 内部有一个白色椭圆,对于其他区域,我得到了像素。

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

我该怎么做?

1 个答案:

答案 0 :(得分:0)

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

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

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

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