用矩阵翻转PNG

时间:2011-08-04 20:58:11

标签: actionscript-3 image-processing

我在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);

现在我的问题有点改变了,为什么这可能有用呢?

1 个答案:

答案 0 :(得分:2)

这很简单,bitmapData的第四个参数的默认值就是你想要它最初填充的内容。因此,当您没有将其指定为透明(在这种情况下为0x000000FF或显然为0x0000FFFF也有效)时,它默认为白色,当您将已经透明的图像绘制到这个新的不透明,白色填充的图像上时,Alpha通道是被白色覆盖。这是因为draw命令不会使用alpha通道信息覆盖现有bitmapData中的任何内容,只会覆盖RGB值。