1


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

しかし、役に立たない。
ヘルプ!

4

3 に答える 3

6

ローダーとロードバイトを使用してみませんか?ネイティブです。

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);
}

コードの問題は、PNGが圧縮され、ビットマップが圧縮されていないことです。

于 2012-05-23T16:56:31.813 に答える
2

DanielHの入力を使用して、画像をステージにロードしました。これが私がイベントハンドラー関数でしたことです...

    function ImageLoaded(e:Event):void
    {
        var bmd:BitmapData = new BitmapData(imageLoader.ImageLoader.width,imageLoader.ImageLoader.height,true, 0xFFFFFF);
        bmd.draw(imageLoader.ImageLoader);
        var image:Bitmap = new Bitmap(bmd,"auto",true);
        image.width=40;
        image.height=40;
        if(!CheckAndStoreImageIDKey(imageLoader.ImageID))
        {
            Images[imageLoader.ImageID] = image;
        }
    }
于 2012-06-11T11:08:15.773 に答える
1

PNGDecoder(http://www.ionsden.com/content/pngdecoder)をお試しください

import ion.utils.png.PNGDecoder;

var bmd:BitmapData = PNGDecoder.decodeImage(imgArray);
于 2012-05-23T16:22:05.980 に答える