0

凸多角形(長方形ではない)の形をしたスプライトがあります。
を使用してスナップショットを作成すると:

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

私はこのような画像を取得します:

画像を見るにはここをクリック


この画像では、画像の寸法 を示すために、緑色の境界線を自分で追加しました。

そのため、BitmapData クラスの draw メソッドを使用して凸多角形のスプライトのスナップショットを撮ると、内側に白い楕円が入っ
た赤い三角形
が表示され、残りの領域には白のピクセルが表示されました。

これらの外側の白いピクセルを青色のピクセル に置き換えたいと思います。

どうすればいいのですか?

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 に答える