如何在透明的BitmapData上绘制透明图形?

时间:2012-02-05 21:02:30

标签: actionscript-3 rendering bitmapdata argb

我正在尝试将PNG绘制到透明的BitmapData上。

我像这样创建我的BitmapData(使用ARGB作为颜色):

new BitmapData(width, height, true, 0x00000000);

使用相同的ARGB值清除它:

bitmapData.fillRect(bitmapData.rect, 0x00000000);

当我使用copyPixels()在已清理的BitmapData上绘制图形时,我得到了这个结果:

enter image description here

如果我不使用ARGB作为BitmapData颜色,它可以正常工作:

enter image description here

但我必须指定一个实心的fillColor,这意味着我无法渲染Bitmap背后的内容。

如何使我的BitmapData透明,但不会出现上述情况?

1 个答案:

答案 0 :(得分:6)

来自documentation on BitmapData::CopyPixels()

“mergeAlpha属性控制在将透明图像复制到另一个透明图像时是否使用 。要使用Alpha通道数据复制像素,请将mergeAlpha属性设置为true。默认情况下,mergeAlpha属性为false。“

一旦Adobe文档实际说出真相。

copyPixels(myPNG, rect, point, null, null, true);

......应该修复它(并且确实)。由于性能原因,默认情况下它是关闭的,因为我无法想到一个关闭它的地方。