Структура и формат файла Photoshop. Часть 2: Color Mode Data.
В первой статье цикла, посвящённого структуре файла документа фотошопа psd обсуждалась «дикость» этого формата, описывались телесные муки, душевные переживания и кармические наказания тому, кто парсил или только собирается парсить этот формат… Установлено, что псд-файл состоит из пяти секций. Автор клятвенно заверял, что будет исправно описывать каждую секцию в отдельной статье, но затем не удержался — и рассмотрел там же (во встпулении) 1-ю секцию, которая оказалось совсем простой (всего-то 26 байт).
Парадокс заключается в том, что вторая секция, хоть и теоретически может иметь раз в 30 больше байт (4+768 например), на самом деле проще первой 26-ти байтной. И практически в 90% документов этой секции можно сказать что нет. То есть она есть, но состоит всего из одного нулевого четырёхбайтного поля длины (BigEndian!). Так что проще некуда. Но это кажущаяся простота; дочитав до последней строчки, вы уже перестанете думать что всё так просто :).
По-правильному, описание этой секции, умещающееся в одно предложение, надо бы добавить в первую статью, но из-за опасения, что потом возникнет желание и третью секцию там же описать (затем четвёртую)… Не станем этого делать, а будем придерживаться взятого обязательства: одна секция — одна статья. Хотя трудно будет расписать про нулевых четыре байта на целую статью — ну да ладно, словесный понос ещё никто не отменял.
Вот он — сабж:
Длина | Описание |
---|---|
4 | Длина следующего блока цветовых данных |
Переменная | Цветовые данные |
Далее практически дословный перевод официального описания:
Только режим с индексированным цветом и Duotone имеют Цветовые данные. Для остальных режимов (в первой статье они есть перечислены) — эта секция просто состоит из четырёхбайтного поля длины, равного нулю.
В индексированном цветовом режиме: длина равна 768 байт, цветовые данные хранят цвета для изображения в неподдающемся осмыслению порядке (не имеющем принципиального значения, на самом деле).
В 2-х цветном режиме (Duotone): цветовые данные содержат спецификацию (в формате, который не документирован, прим. от Adobe!). Другие приложения, которые будут читать файл фотошопа могут трактовать 2-х цветную картинку как монохромную и просто сохранять содержимое о 2-х цветной информации во время чтения или записи файла.
The end of the official description for this section.
Вот так. Таков формат. Таково его официальное описание. Содержит в себе недокументированную информацию, с никому не нужным назначением. То есть, адобовцам видимо доступно тайное знание — а остальные не парьтесь, просто таскайте в своих файлах, извлекайте и обратно сохраняйте, ничего не меняя и не понимая при этом… или понимайте, но как хотите.
Но это только цветочки, ягодки впереди.
Добавить комментарий