PNG文件格式的字节序是什么?

25

我不确定endian是否是正确的词,但是...

我一直在解析PNG文件,发现所有的整数值都是大端字节序。这是真的吗?

例如,宽度和高度以32位无符号整数的形式存储在PNG文件中。我的图像是16x16,在文件中它被存储为:

00 00 00 10

应该是:

10 00 00 00

这是真的吗,还是我漏掉了什么?

2个回答

25

根据规范,整数必须采用网络字节序(大端序):

所有需要超过一个字节的整数都应该采用网络字节序,即最高有效字节在前,其次是次高有效字节,以此类推(对于两个字节的整数,是MSB LSB,对于四个字节的整数,是MSB B2 B1 LSB)。一个字节的最高位(值为128)是第7位,最低位(值为1)是第0位。数值都是无符号的,除非另有说明。明确标注为带符号的值则使用二进制补码表示。

http://www.w3.org/TR/2003/REC-PNG-20031110/#7Integers-and-byte-order


10

PNG图像中的整数使用网络字节序(大端序)。

详见:规范


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接