如何从AS3中的字节数组获取GIF图像大小尺寸?

问题描述:

如何从原始字节数组中获取GIF图像尺寸?如何从AS3中的字节数组获取GIF图像大小尺寸?

这里是related的问题。我试图找出是否有包含宽度和高度的字节串。

我在GIF格式上找到了this页面,但我不确定如何解码它。它看起来像位置6和位置8包含宽度和高度?

我认为这是你在找什么:http://www.matthewflickinger.com/lab/whatsinagif/bits_and_bytes.asp

字节6-7(从零开始的索引)代表宽度和字节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; 

或可选择地只使用readShort为无位移<< ...

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

当然应该先实际验证获得两个字节值(16位)如果字节0的签名是GIF,或者返回错误。 – Vesper

+1

@Vesper,好点,但...头可能是正确的,但其余的数据损坏。唯一能够100%确定的方法是实际使用Loader.loadBytes(source),然后我们可以读取(Loader.content as Bitmap).width和.height,这可能会杀死OP的整个点。 – Organis

+0

@ 1.21千兆瓦,谢谢,我忘了未签名,傻了我。 – Organis