我正在尝试将PNG绘制到透明的BitmapData上。
我像这样创建我的BitmapData(使用ARGB作为颜色):
new BitmapData(width, height, true, 0x00000000);
使用相同的ARGB值清除它:
bitmapData.fillRect(bitmapData.rect, 0x00000000);
当我使用copyPixels()
在已清理的BitmapData上绘制图形时,我得到了这个结果:
如果我不使用ARGB作为BitmapData颜色,它可以正常工作:
但我必须指定一个实心的fillColor,这意味着我无法渲染Bitmap背后的内容。
如何使我的BitmapData透明,但不会出现上述情况?
答案 0 :(得分:6)
来自documentation on BitmapData::CopyPixels()
:
“mergeAlpha属性控制在将透明图像复制到另一个透明图像时是否使用 。要使用Alpha通道数据复制像素,请将mergeAlpha属性设置为true。默认情况下,mergeAlpha属性为false。“
一旦Adobe文档实际说出真相。
copyPixels(myPNG, rect, point, null, null, true);
......应该修复它(并且确实)。由于性能原因,默认情况下它是关闭的,因为我无法想到一个关闭它的地方。