我在使用 PNGEncoder 类时遇到了透明问题。当我将 BitmapData 编码为 png 并将其用作我的图像源时,它看起来很糟糕。我附上例子。有两个图像 - 第一个是彩色的,上面是白色的,带有 alpha 渐变。
我使用了其他一些库,例如 AsPngEncoder,但没有帮助。这是我使用的代码:
var bd:BitmapData = new BitmapData(container.width, container.height, true, 0xffffff);
bd.draw(container);
var pngenc:PNGEncoder = new PNGEncoder();
var pngByteArray:ByteArray = pngenc.encode(bd);
container.source = pngByteArray;
var fl:File = File.applicationStorageDirectory.resolvePath("./images/file.png");
var fs:FileStream = new FileStream();
fs.open(fl, FileMode.WRITE);
fs.writeBytes(pngByteArray);
fs.close();