2012-05-06 66 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