动作脚本3:将bytearray转换为PNG并在场景中显示

KSK*_*KSK 1 png bytearray actionscript-3


我正在通过WCF get调用获取存储在SQL中的PNG图像.该图像被编码为base64字符串并传递给我的AS3代码.我需要从数据中提取图像并在场景中显示它.
除其他外,我也试过这个......

    var imgArray:ByteArray = Base64.decodeToByteArray(responseXML.ImageObject);
var myRect:Rectangle = new Rectangle(100,100,200,200);
var bmd:BitmapData = new BitmapData(200,200,true,0xAAAAAAAA);
bmd.setPixels(myRect, imgArray);
var image:Bitmap = new Bitmap(bmd,"auto",true);
this.addChild(image);
Run Code Online (Sandbox Code Playgroud)

但无济于事.
救命!

ans*_*art 6

你为什么不使用装载机和loadbytes?它是原生的.

var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleLoad)
loader.loadbytes(byteArray);

private function handleLoad(e:Event):void {
  var loader:Loader = e.currentTarget as Loader;
  // removelistener,etc

  trace(loader.content as Bitmap);
}
Run Code Online (Sandbox Code Playgroud)

您的代码的问题是PNG被压缩,位图是未压缩的.