2012-05-06 68 views
0

我有三個BitmapData對象,都帶有alpha通道。AS3 bitmapdata基於第三個alpha通道混合兩個alpha通道

位圖數據1 & 2具有相同RGB內容,但不同的alpha通道:

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

位圖數據3具有完全不同的數據。

我想要實現的是以下內容:

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

所以,我想根據位圖數據的alpha通道共混位圖數據1 & 2的alpha通道3

我需要迭代在所有像素上做這件事,還是有更快的方法?嘗試copyPixels,但沒有得到理想的效果。

回答

1

您應該可以通過使用BlendMode來實現多個draw操作。它可能需要太多操作才能比迭代更高效。

如果最終迭代像素(並且不針對iOS),請考慮PixelBender