AS3 位图数据基于第三个 alpha 通道混合两个 alpha 通道



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

bitmapData 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);

所以,我想混合位图数据 1 和 2 的 alpha 通道基于 bitmapData 3 的 alpha 通道

我是否需要遍历所有像素才能执行此操作,或者有更快的方法? 尝试了copyPixels,但没有得到想要的结果。

您应该

能够使用 BlendMode 通过多个draw操作来实现这一点。 它可能需要太多操作才能比迭代更有效。

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

最新更新