如何从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();
当然应该先实际验证获得两个字节值(16位)如果字节0的签名是GIF,或者返回错误。 – Vesper
@Vesper,好点,但...头可能是正确的,但其余的数据损坏。唯一能够100%确定的方法是实际使用Loader.loadBytes(source),然后我们可以读取(Loader.content as Bitmap).width和.height,这可能会杀死OP的整个点。 – Organis
@ 1.21千兆瓦,谢谢,我忘了未签名,傻了我。 – Organis