2015-06-17 6 views
1

Я сейчас читаю о формате PNG. Оказывается, первый байт файла указан равным 0x89.Почему первый байт файла .png равен 0x89?

Мне интересно, каковы причины значения этого байта.

Что я уже узнал о формате, так это то, что первый байт используется для обнаружения передачи по 7-битовому каналу. Если значение было 0x80 (1000 0000), это имело бы смысл (если после передачи у нас есть 0 в первом байте, тогда использовался 7-битный режим и файл поврежден). Но в чем смысл их на нулевой и третьей позициях 0х89 (1000 1001)?

ответ

3

Выписка из http://www.libpng.org/pub/png/spec/1.2/PNG-Rationale.html#R.PNG-file-signature

Первые два байта различают PNG файлов в системах, которые ожидают, что первые два байта, чтобы идентифицировать файл типа однозначно. Первый байт является , выбранным как значение, отличное от ASCII, для уменьшения вероятности того, что текстовый файл может быть неверно распознан как PNG-файл; Кроме того, он ловит несовместимый файл переводы, которые ясно бит 7

Таким образом, младший бит первого байта используется для идентификации типа файла.

+0

Большое спасибо за ваш ответ. –

+0

Бит 7 - это MSB, а не LSB :) – usr2564301

Смежные вопросы