actionscript-3 - 如何将透明图形绘制到透明 BitmapData 上?

标签 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 透明,但不会发生上述情况?

最佳答案

来自documentation on BitmapData::CopyPixels() :

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

这一次 Adob​​e 文档真正说出了真相。

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

...应该修复它(并且已经修复)。出于性能原因,我猜它默认是关闭的,因为我实在想不出有什么地方可以关闭它。

关于actionscript-3 - 如何将透明图形绘制到透明 BitmapData 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9153004/

相关文章:

actionscript-3 - 内存使用量较少的位图数据替代方案?

flash - AS3 Video MouseEvent Click 不起作用

ios - air sdk 16 buid 应用程序,需要有通用的 iOS 库。请联系 ANE 开发者

actionscript - stage.width 和 stage.stageWidth 的区别

java - PDF 中的图像为黑色

JSF 重新渲染复合组件 : insertChildren problems

flash - 使用代码更改 AS3 中的背景颜色?

java - JTable 渲染有时会停止渲染,但会在调整窗口大小时恢复

ios - 从原始像素创建图像,但颜色无法根据 RGBA 十六进制值显示

flash - 如何获得透明度以在 Actionscript 中处理位图