私はビットマップの 2 つのレイヤーを持っています:
1 番目 - いくつかのランダムなイメージ
2 番目 - 1 番目のビットマップをカバーする黒色で塗りつぶされたビットマップ
また、マスク ビットマップがあります。私はこのようなものを作ろうとしてい
ます https://dl.dropbox.com/u/13089585/so/001.jpg
しかし、私はこのようなものを手に入れます:
https://dl.dropbox.com/u/13089585/so/002 .jpg
を使用して、さまざまなパラメーターの組み合わせを使用してこれを実行しようBitmapData::copyPixels
とBitmapData::copyChannel
しBitmapData::draw
ましたが、まだ作成できません... dest のアルファ値をオーバーライドするメソッドが必要です。ただし、この値が src よりも大きい場合のみ。ビットマップ。
1 に答える
2
まず、マスクとしてビットマップの代わりにスプライトを使用する場合、BitmapData.draw()
withを使用しBlendMode.ERASE
てその効果を得ることができます。ただし、半透明が必要な場合 (たとえば 50% アルファ) は機能しません。
あなたができることは、2番目の画像を透明にしたい場所でマスクビットマップを黒くし、他の場所を透明にすることです(マスクの30%のアルファは2番目のビットマップの70%のアルファになります)。BitmapData
ここで、赤の塗りつぶしで 3 番目を作成し、 を使用して 3番目draw
にマスクを作成します。次に、3 番目の赤から 2 番目のアルファまでを使用します。BitmapData
BlendMode.DARKEN
copyChannel()
それはきれいではありませんが、実際の生活は決してそうではありません...
于 2012-09-17T01:26:56.637 に答える