Подтвердить что ты не робот

PNG формат файла?

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

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

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

00 00 00 10

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

10 00 00 00

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

Смотрите: спецификация.