PNG文件格式字节顺序?

时间:2010-03-05 02:06:07

标签: png endianness

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

我一直在解析PNG文件,我注意到所有的整数值都是大端的。这是真的吗?

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

00 00 00 10

应该是:

10 00 00 00

这是真的还是我遗失了什么?

2 个答案:

答案 0 :(得分:19)

是的,根据规范,整数必须是网络字节顺序(大端):

  

所有需要多个字节的整数应按网络字节顺序排列:最高有效字节首先出现,然后按重要性降序排列较低有效字节(两字节整数为MSB LSB,四字节为MSB B2 B1 LSB) - 字节整数)。一个字节的最高位(值128)编号为第7位;最低位(值1)编号为位0.除非另有说明,否则值为无符号。明确标记为已签名的值以二进制补码表示。

     

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

答案 1 :(得分:8)

PNG中的整数是网络字节顺序(大端)。

请参阅:the spec