AS3 bitmapdata基于第三个alpha通道混合两个alpha通道

时间:2012-05-06 12:14:06

标签: performance actionscript-3 flash air

我有三个BitmapData对象,都有alpha通道。

bitmapData 1& 2具有相同的RGB内容,但不同的alpha通道:

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 1&的alpha通道。 2基于bitmapData 3的alpha通道

我是否需要迭代所有像素来执行此操作,还是有更快的方法?尝试使用copyPixels,但没有得到理想的结果。

1 个答案:

答案 0 :(得分:1)

您应该可以使用draw通过多个BlendMode操作实现此目的。它可能需要太多操作才能比迭代更有效。

如果您最终迭代像素(并且不是针对iOS),请考虑PixelBender