2011-10-25 25 views
5

ByteArrayにデコードされる画像の幅と高さを判断する方法があるかどうかは疑問です。たとえば、以下のように、データのこれらの値を決める方法はありますか?ByteArrayから画像サイズを取得する

var data:ByteArray = new ByteArray();

data = encoded_image.decode(byteArrayData);

答えて

3

あなたはこのようにそれを行うことができます。

var loader:Loader = new Loader(); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded) 
loader.loadBytes(byteArrayData); 

-

function onLoaded(e:Event):void 
{ 
    var loader:Loader = Loader(e.target.loader); 
    var bitmapData:BitmapData = Bitmap(e.target.content).bitmapData; 

    width = bitmapData.width; 
    height = bitmapData.height; 

    // cleanup 
    loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onLoaded); 
} 

あなたが実際に画像を必要としないので、もし欠点は、画像全体を復号化しようとしているということです、幅と高さのみを使用する場合は、実際にはバイト配列を調べてファイル形式をデコードする必要があります。 (もっとトリッキーな、しかし

+0

私は、エラー#2044を取得しています:未処理のIOErrorEventを:.テキスト=エラー#2124:ロードされたファイルには、未知のタイプです – user1013448

+0

ローダーへのByteArrayを渡すときに、私はエラーを取得しています 。 エラー#2044:未処理のIOErrorEvent: text =エラー#2124:ロードされたファイルは不明なタイプです。 – user1013448

+0

おそらくあなたが提供しているByteArrayは良くありません。そのバイト配列はどこから来ていますか? –

0

あなたはヘッダからそれを読むことができます。 ヘッダは、しかし、ファイルタイプごとに異なります。カスタムイメージデコーダで 見て、これは彼らが行うものの一つである。ここで

が1でありますPNG画像のために:

http://ionsden.com/content/pngdecoder

関連する問題