2

透明な BitmapData に PNG を描画しようとしています。

次のように BitmapData を作成します (色に ARGB を使用)。

new BitmapData(width, height, true, 0x00000000);

同じ ARGB 値を使用してクリーンアップします。

bitmapData.fillRect(bitmapData.rect, 0x00000000);

copyPixels()クリーンな BitmapData にグラフィックスを描画するために使用すると、次の結果が得られます。

ここに画像の説明を入力

BitmapData の色に ARGB を使用しない場合、問題なく動作します。

ここに画像の説明を入力

ただし、ソリッドの fillColor を指定する必要があります。つまり、ビットマップの背後にあるものをレンダリングできません。

BitmapData を透明にするにはどうすればよいですか?

4

1 に答える 1

6

ドキュメントからBitmapData::CopyPixels()

"mergeAlpha プロパティは、透明なイメージを別の透明なイメージにコピーするときにアルファ チャネルを使用するかどうかを制御します。アルファ チャネル データでピクセルをコピーするには、mergeAlpha プロパティを true に設定します。デフォルトでは、mergeAlpha プロパティは false です。"

一度だけ、アドビのドキュメントが実際に真実を語っています。

copyPixels(myPNG, rect, point, null, null, true);

...それを修正する必要があります(そして修正しました)。パフォーマンス上の理由から、デフォルトでオフになっていると思います。オフにすると便利な場所が思いつかないからです。

于 2012-02-05T21:28:17.287 に答える