Структура и формат файла Photoshop. Часть 2: Color Mode Data.

2011-03-25 papirosnik Photoshop

В первой статье цикла, посвящённого структуре  файла документа фотошопа 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.

Вот так. Таков формат. Таково его официальное описание. Содержит в себе недокументированную информацию, с никому не нужным назначением. То есть, адобовцам видимо доступно тайное знание — а остальные не парьтесь, просто таскайте в своих файлах, извлекайте и обратно сохраняйте, ничего не меняя и не понимая при этом… или понимайте, но как хотите.

Но это только цветочки, ягодки впереди.

psd,


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Powered by WordPress. Designed by elogi.