6

我正在使用 com.adobe.images.PNGEncoder 将 bitmapData 编码为 byteArray。有没有办法不使用加载器将 byteArray 转换回 bitmapData?谢谢。

编辑:我不想使用加载器的原因是它是异步的,我不想实现事件监听器。

4

2 回答 2

10

以下是使用加载器类但是同步的。

var loader:Loader = new Loader();
loader.loadBytes(byteArray);
bmpData.draw(loader);

编辑:没关系 loadBytes 也是异步的,文档说您需要等待 init 事件。不想要事件监听器的原因是什么?它们是 AS3 中非常常见的做法。

所以你需要这样的东西:

var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.INIT, function(e:Event):void {
   bmpData.draw(loader);    
});
loader.loadBytes(byteArray);
于 2012-07-18T13:08:45.167 回答
2

看一下 bitmapdata 的 setpixels() 方法。它需要一个矩形来定义大小和一个字节数组作为内容。此方法同步

于 2012-07-18T14:52:01.223 回答