aspose.info
RU

PSD — формат файла изображения Photoshop

Обновлено

.PSD вариант №

PSD, документ Photoshop, представляет собой собственный формат файлов Adobe Photoshop, используемый для графического дизайна и разработки. Файлы PSD могут включать в себя слои изображений, корректирующие слои, маски слоев, аннотации, информацию о файле, ключевые слова и другие элементы, характерные для Photoshop. Файлы Photoshop по умолчанию имеют расширение .PSD, максимальную высоту и ширину 30 000 пикселей и ограничение по длине в два гигабайта.

Спецификации формата файла PSD

Данные в PSD-файле хранятся в порядке байтов с обратным порядком байтов. Это подразумевает замену коротких и длинных целых чисел при чтении или записи на платформе Windows. Формат файла Photoshop разделен на пять основных частей. Он имеет множество маркеров длины, которые можно использовать для перехода от одного раздела к другому. Маркеры длины обычно дополняются байтами для округления до ближайшего интервала в 2 или 4 байта. Пять основных частей:

  • Заголовок файла
  • Данные цветового режима
  • Ресурсы изображений
  • Информация о слое и маске
  • Данные изображения

Для соответствия данные должны быть записаны во все эти поля в разделе, так как Photoshop может попытаться прочитать весь раздел. Это также означает, что при записи в файл в пропущенные поля записываются нули. Поле длины в разделах с разделителями по длине следует использовать для принятия решения о прекращении чтения. В большинстве случаев поле длины указывает количество следующих байтов, а не записей. При чтении файла необходимо помнить следующие моменты.

  • Значения в столбце «Длина» во всех таблицах указаны в байтах.
  • Все значения, определенные как строка Unicode, состоят из:
  • Поле длины 4 байта, представляющее количество символов в строке (не байтов).
  • Строка значений Unicode, два байта на символ.

Заголовок файла

Заголовок файла содержит основные свойства изображения.

ДлинаОписание
4Подпись: всегда равна ‘8BPS’ . Не пытайтесь прочитать файл, если подпись не соответствует этому значению.
2Версия: всегда равна 1. Не пытайтесь прочитать файл, если версия не соответствует этому значению. (*PSB~~* версия 2.)
6Зарезервировано: должно быть равно нулю.
2Количество каналов в изображении, включая любые альфа-каналы. Поддерживаемый диапазон: от 1 до 56.
4Высота изображения в пикселях. Поддерживаемый диапазон: от 1 до 30 000.
4Ширина изображения в пикселях. Поддерживаемый диапазон: от 1 до 30 000.
2Глубина: количество бит на канал. Поддерживаемые значения: 1, 8, 16 и 32.
2Цветовой режим файла. Поддерживаемые значения: Bitmap # 0; Оттенки серого № 1; Индекс № 2; РГБ №3; CMYK#4; Многоканальный №7; Дуотон №8; Лаборатория № 9.

Раздел данных цветового режима

Раздел данных цветового режима структурирован следующим образом:

ДлинаОписание
4Длина следующих цветовых данных
переменнаяДанные цвета

Данные цветового режима доступны только для индексированного цвета и дуплекса, как определено полем режима в разделе «Заголовок файла». Для всех остальных режимов этот раздел представлен 4-байтовыми обнуленными значениями. Для индексированных цветных изображений длина составляет 768, а данные о цвете содержат таблицу цветов для изображения в порядке без чередования. Для изображений Duotone данные о цвете содержат спецификацию Duotone (формат которой не задокументирован). Другие приложения, которые читают файлы Photoshop, могут обрабатывать двухцветное изображение как серое и просто сохранять содержимое двухцветной информации при чтении и записи файла.

Раздел ресурсов изображений

Третий раздел файла содержит ресурсы изображений. Он начинается с поля длины, за которым следует серия блоков ресурсов.

ДлинаОписание
4Длина раздела ресурса изображения. Длина может быть нулевой.
ПеременнаяРесурсы изображения (блоки ресурсов изображения)

Ресурсы изображений используются для хранения непиксельных данных, связанных с изображениями, таких как траектории инструментов пера. Их называют блоками ресурсов, поскольку они содержат данные, хранившиеся в ресурсах Macintosh в ранних версиях Photoshop. Базовая структура блоков ресурсов изображений показана ниже:

ДлинаОписание
4Подпись: ‘8BIM’
2Уникальный идентификатор ресурса. Идентификаторы ресурсов изображений содержат список идентификаторов ресурсов, используемых Photoshop.
ПеременнаяИмя: строка Паскаля, дополненная для четного размера (нулевое имя состоит из двух байтов, равных 0).
4Фактический размер данных ресурсов, которые следуют
ПеременнаяДанные ресурса, описанные в разделах, посвященных отдельным типам ресурсов. Он дополнен, чтобы сделать размер даже.

Ресурсы изображений используют несколько стандартных идентификационных номеров.

Информация о слое и маске

Четвертый раздел файла Photoshop содержит информацию о слоях и масках, такую как количество слоев, каналы в слоях, диапазоны наложения, ключи корректирующего слоя, слои эффектов и параметры маски. Если нет слоев или масок, этот раздел представлен обнуленным 4-байтовым полем. Особое внимание следует уделить длине разделов при чтении этого раздела из-за обнуления значений. Расположение разделов «Слой и маска» следующее:

ДлинаОписание
4Длина раздела информации о слое и маске. (Длина PSB составляет 8 байт.)
ПеременнаяИнформация о слое
ПеременнаяИнформация о глобальной маске слоя
ПеременнаяСерии тегированных блоков, содержащих различные типы данных.

Информация о слое

В следующей таблице показана высокоуровневая организация информации слоя.

ДлинаОписание
4Длина секции информации о слоях, округленная до кратного 2. (Длина PSB 8 байт.)
2Количество слоев. Если это отрицательное число, его абсолютное значение равно количеству слоев, а первый альфа-канал содержит данные о прозрачности для объединенного результата.
ПеременнаяИнформация о каждом слое. См. Записи слоя описывает структуру этой информации для каждого слоя.
ПеременнаяДанные изображения канала. Содержит одну или несколько записей данных изображения для каждого слоя. Слои расположены в том же порядке, что и в информации о слоях.

Данные изображения

Пиксельные данные изображения содержатся в разделе файла Image Data. Данные в разделе данных изображения расположены в плоском порядке, т. е. сначала все данные красного цвета, затем все данные зеленого цвета и т. д. Каждая плоскость хранится в порядке строк развертки, без дополнительных байтов. Раздел данных изображения расположен в формате как показано в следующей таблице.

ДлинаОписание
2Метод сжатия: *0 = Необработанные данные изображения * 1 = Сжатые RLE данные изображения начинаются с подсчета байтов для всех строк сканирования (строк * каналов), при этом каждый подсчет сохраняется как двухбайтовое значение. Далее следуют сжатые данные RLE, причем каждая строка сканирования сжимается отдельно. Сжатие RLE — это тот же алгоритм сжатия, который используется подпрограммой Macintosh ROM PackBits и стандартом TIFF. *2 = ZIP без предсказания *3 = ZIP с предсказанием.
ПеременнаяДанные изображения. Планарный порядок = RRR GGG BBB и т. д.

Использованная литература

См. также