2017-01-16 13 views
1

する方法生のバイト配列からGIF画像の寸法を取得しますか?AS3のバイト配列からGIFイメージサイズの寸法を取得する方法は?

ここにはrelatedの質問があります。私は、幅と高さを含むバイト列があるかどうかを調べようとしています。

GIF形式のthisページが見つかりましたが、解読方法がわかりません。位置6と位置8に幅と高さが含まれているようですか?

答えて

5

私はそれはあなたが探しているものだと思います:http://www.matthewflickinger.com/lab/whatsinagif/bits_and_bytes.asp

バイト6-7(0から始まるインデックス)の幅を表し、8-9は、高さを表すバイト。その場合:

var source:ByteArray; 
var aHeight:int; 
var aWidth:int; 

source.position = 6; 

aWidth = source.readUnsignedByte(); 
aWidth += source.readUnsignedByte() << 8; 

aHeight = source.readUnsignedByte(); 
aHeight += source.readUnsignedByte() << 8; 

または代替的にちょうどそれが実際に最初に検証しなければならない...ビットシフト<<ことなく、2バイト値(16ビット)を取得するためもちろん

aWidth = source.readShort(); 
aHeight = source.readShort(); 
+0

readShortを使用バイト0のシグネチャがGIFのシグネチャである場合は、エラーを返します。 – Vesper

+1

@Vesper、良い点、しかし...ヘッダーは正しいかもしれませんが、残りのデータは壊れています。 100%確実になる唯一の方法は、実際にはLoader.loadBytes(source)です。次に、OPのために全体の点を殺してしまう恐れのある(BitmapとしてのLoader.content).widthと.heightを読み込むことができます。 – Organis

+0

@ 1.21ギガワット、おかげさまで、私は無署名の、愚かな私を忘れました。 – Organis

関連する問題