我在AS3中翻转png时遇到了问题。我遇到的问题是,当我翻转图像时,它不会保持透明度。
preApply = new BitmapData (Canvas.Bmp.width, Canvas.Bmp.height,true);
preApply.draw(Canvas.Bmp,myMatrix, null, null, null, true);
有什么建议吗?翻盖工作它只是它给它一个白色背景。我能够在同一图像上运行过滤器,但似乎没有给它一个白色背景。
更新:我发现如果我为BitmapData设置颜色,它会保持透明度,这有点奇怪。
preApply = new BitmapData (Canvas.Bmp.width, Canvas.Bmp.height,true,0x0000FFFF);
现在我的问题有点改变了,为什么这可能有用呢?
答案 0 :(得分:2)
这很简单,bitmapData的第四个参数的默认值就是你想要它最初填充的内容。因此,当您没有将其指定为透明(在这种情况下为0x000000FF或显然为0x0000FFFF也有效)时,它默认为白色,当您将已经透明的图像绘制到这个新的不透明,白色填充的图像上时,Alpha通道是被白色覆盖。这是因为draw命令不会使用alpha通道信息覆盖现有bitmapData中的任何内容,只会覆盖RGB值。