PNG文件格式字节顺序?

Mar*_*lon 20 png endianness

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

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

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

00 00 00 10
Run Code Online (Sandbox Code Playgroud)

应该是什么时候:

10 00 00 00
Run Code Online (Sandbox Code Playgroud)

这是真的还是我缺少的东西?

ja.*_*ja. 19

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

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

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


Set*_*eth 8

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

请参阅:规格.