我正在尝试将 PNG 绘制到透明的 BitmapData 上。
我这样创建我的 BitmapData(使用 ARGB 作为颜色):
new BitmapData(width, height, true, 0x00000000);
并使用相同的 ARGB 值清理它:
bitmapData.fillRect(bitmapData.rect, 0x00000000);
当我使用 copyPixels()
将图形绘制到清理后的 BitmapData 上时,我得到了这个结果:
如果我不使用 ARGB 作为 BitmapData 颜色,它工作正常:
但我必须指定纯色 fillColor,这意味着我无法渲染 Bitmap 后面的内容。
如何使我的 BitmapData 透明,但不会发生上述情况?
最佳答案
来自documentation on BitmapData::CopyPixels()
:
“当将一个透明图像复制到另一个透明图像上时,mergeAlpha 属性控制是否使用 alpha channel 。要使用 alpha channel 数据复制像素,请将 mergeAlpha 属性设置为 true。默认情况下,mergeAlpha 属性为 false。”
这一次 Adobe 文档真正说出了真相。
copyPixels(myPNG, rect, point, null, null, true);
...应该修复它(并且已经修复)。出于性能原因,我猜它默认是关闭的,因为我实在想不出有什么地方可以关闭它。
关于actionscript-3 - 如何将透明图形绘制到透明 BitmapData 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9153004/