Как текстовые комментарии в файлах JPG работают?

Вопрос: Файлы JPG могут содержать текстовые комментарии через маркер FE FF. У меня есть несколько вопросов по этому поводу: Как указать длину комментария? Можно ли вообще не указывать длину, если комментарий находится в конце файла? Возможно ли иметь действительный файл jpg без изображения, которое состоит только из комментария? Как будет выглядеть такой файл в двоичном

Вопрос:

Файлы JPG могут содержать текстовые комментарии через маркер FE FF. У меня есть несколько вопросов по этому поводу:

  1. Как указать длину комментария? Можно ли вообще не указывать длину, если комментарий находится в конце файла?

  2. Возможно ли иметь действительный файл jpg без изображения, которое состоит только из комментария? Как будет выглядеть такой файл в двоичном формате? Я предполагаю, что это будет:

FF D8 — SOI: start of image (note that no frame data follow) FF D9 — EOI: end of image FF FE — COM: text comment (binary) — (text) Лучший ответ:

1: Большинство сегментов JPEG содержат 2-байтовый маркер (0xFFFE в случае COM), за которым следует длина сегмента (2 байта). См. Синтаксис и структуру JPEG (Википедия).

2: Имеет ли смысл иметь только таблицы (только сегменты DHT и DQT) JPEG без данных изображения. Я не уверен в отсутствии таблиц и данных изображений, но, по крайней мере, вам не нужны данные изображения. Не уверен, насколько это полезно, или как большинство программ JPEG будет интерпретировать его, хотя….

Ответ №1

Метаданные JPEG хранятся в структуре тегов следующим образом:

0xFF – ввод тега
0xXX – значение тега
0xXX 0xXX – длина тега в большом порядке, включая длину длины (2)
<данные тега (длина-2 байта)>

Эта структура требует, чтобы каждый тег мог содержать максимум 65534 байта метаданных. Для более крупных структур значение истинной длины сохраняется в данных тега, а несколько тегов содержат всю структуру.

Пример тега комментария. Он включает в себя нулевой ограничитель, но это не требуется.

FF FE 00 08 48 45 4C 4C 4F 00 – “HELLO”

Оцените статью
Добавить комментарий