2012-05-06 8 views
0

アルファチャンネルを持つ3つのBitmapDataオブジェクトがあります。AS3ビットマップデータは、3番目のアルファチャンネルに基づいて2つのアルファチャンネルを合成します。

のBitmapData 1 & 2は同じRGBコンテンツを有するが、異なるアルファチャンネル:

bitmapData1.rgb == bitmapData2.rgb 
bitmapData1.a != bitmapData2.a 

のBitmapData 3は、完全に異なるデータを有しています。

私が達成したいことは以下の通りです:

ので
targetBitmapData.rgb = bitmapData1.rgb; 
targetBitmapData.a = bitmapData1.a * bitmapData3.a + bitmapData2.a*(1-bitmapData3.a); 

、私がBitmapData 3

のアルファチャンネルに基づいたBitmapData 1 & 2のアルファチャンネルをブレンドしたい、私は繰り返し処理する必要がありますかすべてのピクセルでこれを行うか、またはより速い方法がありますか? copyPixelsで実験しましたが、希望の結果が得られませんでした。

答えて

1

BlendModeを使用して複数のdraw操作でこれを達成できるはずです。それは、反復より効率的であるためには操作が多すぎることがあります。

ピクセルの繰り返しを終了した場合(iOSをターゲットにしていない場合)は、PixelBenderとしてください。

関連する問題