Порядок в формате PNG? - PullRequest
       3

Порядок в формате PNG?

19 голосов
/ 05 марта 2010

Я не уверен, что endian - правильное слово, но ..

Я анализировал файл PNG и заметил, что все целочисленные значения находятся в порядке с прямым порядком байтов. Это правда?

Например, ширина и высота сохраняются в файле PNG как 32-разрядные целые числа без знака. Мое изображение размером 16x16, и в файле оно хранится как:

00 00 00 10

когда это должно быть:

10 00 00 00

Это правда или мне чего-то не хватает?

Ответы [ 2 ]

19 голосов
/ 05 марта 2010

Да, согласно спецификации, целые числа должны быть в сетевом порядке байтов (с прямым порядком байтов):

Все целые числа, которым требуется более одного байта, должны быть в сетевом порядке байтов: самый старший байтна первом месте, затем младшие байты в порядке убывания значимости (MSB LSB для двухбайтовых целых чисел, MSB B2 B1 LSB для четырехбайтовых целых чисел).Старший бит (значение 128) байта является пронумерованным битом 7;младший бит (значение 1) - это пронумерованный бит 0. Значения не подписаны, если не указано иное.Значения, явно помеченные как подписанные, представлены в двоичной записи.

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

8 голосов
/ 05 марта 2010

Целые числа в PNG расположены в сетевом порядке байтов (с прямым порядком байтов).

См .: Спецификация .

...