【问题标题】:PNG file format endianness?PNG文件格式字节序?
【发布时间】:2011-01-23 22:56:14
【问题描述】:

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

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

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

00 00 00 10

什么时候应该:

10 00 00 00

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

【问题讨论】:

    标签: png endianness


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      请参阅:the spec

      【讨论】:

        猜你喜欢
        • 2012-11-17
        • 1970-01-01
        • 1970-01-01
        • 2014-11-26
        • 2014-04-24
        • 1970-01-01
        • 1970-01-01
        • 2011-04-02
        • 2017-02-16
        相关资源
        最近更新 更多