Какво е PSD файл?
PSD, Photoshop Document, представлява родния файлов формат на 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; RGB # 3; CMYK # 4; Многоканален # 7; Duotone # 8; Лаборатория № 9. |
Секция с данни за цветен режим
Разделът с данни за цветовия режим е структуриран, както следва:
Дължина | Описание |
---|---|
4 | Дължината на следните цветни данни |
променлива | Данните за цвета |
Данните за цветовия режим са достъпни само за индексиран цвят и двуцветен цвят, както е дефинирано от полето за режим в раздела за заглавка на файла. За всички други режими тази секция е представена от 4-байтови нулирани стойности. За индексирани цветни изображения дължината е 768 и цветните данни съдържат таблицата с цветовете за изображението в ред без разплитане. За двуцветни изображения цветните данни съдържат двуцветна спецификация (чийто формат не е документиран). Други приложения, които четат файлове на Photoshop, могат да третират двуцветно изображение като сиво изображение и просто да запазят съдържанието на двуцветната информация, когато четат и записват файла.
Раздел за ресурси за изображения
Третият раздел на файла съдържа ресурси за изображения. Започва с поле за дължина, последвано от поредица от ресурсни блокове.
Дължина | Описание |
---|---|
4 | Дължина на секцията с ресурс за изображение. Дължината може да е нула. |
Променлива | Ресурси за изображения (блокове за ресурси за изображения) |
Ресурсите на изображения се използват за съхраняване на непикселни данни, свързани с изображения, като пътеки на инструмента за писалка. Те се наричат ресурсни блокове, защото съдържат данни, които са били съхранени в ресурса на Macintosh в ранните версии на Photoshop. Основната структура на ресурсните блокове за изображения е както е показано по-долу:
Дължина | Описание |
---|---|
4 | Подпис: ‘8BIM’ |
2 | Уникален идентификатор за ресурса. Идентификаторите на ресурси за изображения съдържат списък с идентификатори на ресурси, използвани от Photoshop. |
Променлива | Име: Pascal низ, подплатен, за да направи размера равномерен (нулево име се състои от два байта от 0) |
4 | Действителен размер на данните за ресурсите, които следват |
Променлива | Данните за ресурсите, описани в разделите за отделните видове ресурси. Подплатено е, за да бъде размерът равен. |
Ресурсите за изображения използват няколко стандартни идентификационни номера.
Информация за слой и маска
Четвъртият раздел на файла на Photoshop съдържа информация за слоеве и маски, като например брой слоеве, канали в слоевете, диапазони на смесване, клавиши на коригиращия слой, слоеве с ефекти и параметри на маската. Ако няма слоеве или маски, тази секция е представена от нулирано 4-байтово поле. Трябва да се обърне специално внимание на дължината на секциите, докато четете този раздел поради нулираните стойности. Подреждането на секцията Слой и Маска е както следва:
Дължина | Описание |
---|---|
4 | Дължина на секцията с информация за слоя и маската. (Дължината на PSB е 8 байта.) |
Променлива | Информация за слоя |
Променлива | Глобална информация за маската на слоя |
Променлива | Поредица от маркирани блокове, съдържащи различни типове данни. |
Информация за слоя
Следващата таблица показва организацията на високо ниво на информацията за слоя.
Дължина | Описание |
---|---|
4 | Дължина на секцията с информация за слоевете, закръглена до кратно на 2. (Дължината на PSB е 8 байта.) |
2 | Брой слоеве. Ако е отрицателно число, абсолютната му стойност е броят на слоевете и първият алфа канал съдържа данните за прозрачност за обединения резултат. |
Променлива | Информация за всеки слой. Вижте Записи на слой описва структурата на тази информация за всеки слой. |
Променлива | Данни за изображението на канала. Съдържа един или повече записа с данни за изображение за всеки слой. Слоевете са в същия ред като в информацията за слоя |
Данни за изображения
Данните за пикселите на изображението се съдържат в раздела Данни за изображението на файла. Подреждането на данните в секцията с данни за изображението е в планарен ред, т.е. първо всички червени данни, след това всички зелени данни и т.н. Всяка равнина се съхранява в ред на сканиране, без байтове за подложки, секцията с данни за изображението е подредена във формат както е показано в следващата таблица.
Дължина | Описание |
---|---|
2 | Метод на компресиране: *0 = Необработени данни за изображение * 1 = RLE компресирани данни за изображение започват с броя на байтовете за всички сканирани линии (редове * канали), като всеки брой се съхранява като двубайтова стойност. Следват RLE компресираните данни, като всяка сканирана линия е компресирана отделно. RLE компресията е същият алгоритъм за компресия, използван от Macintosh ROM рутина PackBits и стандарта TIFF. *2 = ZIP без прогноза *3 = ZIP с прогноза. |
Променлива | Данните за изображението. Планарен ред = RRR GGG BBB и т.н. |