在 AS3.0 中存储混合图像的结果

Storing the result of blended images in AS3.0

我正在制作一个交互式动画,其中的背景图像被相机捕捉到的形状所掩盖。在每一帧中,相机将图像转换为黑白图像,然后用于遮罩背景图像。

代码中,"now"为相机拍摄的图像,"P1"为背景图像。

使用混合模式乘法蒙版后,我希望存储蒙版后的结果图像并用于其他用途。 我不明白当我使用 blendmode 函数时,结果是如何定义好的。 我可以捕获、复制或存储结果图像吗?

var P1:MovieClip = new p1();
var mskimg:MovieClip = new maskimage();

var bitmap_obj:Bitmap = new Bitmap(now);

addChild(P1);
P1.blendMode = BlendMode.LAYER;
addChild(bitmap_obj);
bitmap_obj.blendMode = BlendMode.MULTIPLY;

如果将要绘制的所有内容都放入容器中,则可以绘制蒙版对象,然后调用BitmapData.draw()将完整的分层对象绘制到某些BitmapData。然后,您可以使用该位图数据做任何您想做的事情,Graphics.beginBitmapFill()FileReference.save(),随便什么。然而,该操作非常昂贵,所以如果您通过响应用户操作来触发绘图会更好,而不是默认情况下每帧都这样做,除非您的应用程序逻辑需要。