Формат файла psd

Я пытаюсь найти документацию формата psd, чтобы я мог читать в .psd, а затем сохранять отдельные слои в виде файлов, а также делать другие изменения. Кто-нибудь знает какой-либо документ в формате .psd? (Только для справки, я буду писать это на С++)

Если есть примеры кода для загрузки файла .psd в С++, я был бы признателен за их связь.

(Пожалуйста, не превращайте это в "просто использовать программное обеспечение XXX". Это не домашнее задание или что-то связанное с этим. Я делаю это, потому что думаю, что это будет забавный проект, над которым я буду работать. чтобы быть голосом, если это произойдет.)

Ответ 1

Это не будет интересный проект, формат .psd большой. Он включает в себя все функции, которые Adobe заложила в Photoshop на протяжении многих лет.

Я считаю, что спецификация может быть получена от Adobe, но они не просто передают ее публике. Вам придется связаться с ними и сначала проскочить через несколько обручей.

Ответ 2

Есть также некоторый код Objective-C на GitHub (должен быть легко понятен для любого с фоном C++), также являющийся источником этого драгоценного камня, который, кажется, суммирует это:

Сейчас я хотел бы поговорить с вами о формате Adobe PSD. PSD не очень хороший формат. PSD это даже не плохой формат. Назвать это так было бы оскорбление других плохих форматов, таких как PCX или JPEG. Нет, PSD - ужасный формат. имеющий работал над этим кодом уже несколько недель, моя ненависть к PSD переросла в бушующий огонь это пылает страстью миллионов солнц.
Если есть два разных способа сделать что-то, PSD сделает оба, в разных мест. Затем он придумает еще три способа, о которых ни один здравомыслящий человек не подумает, и сделает слишком. PSD делает несоответствие формой искусства. Почему, например, он вдруг решил что эти конкретные куски должны быть выровнены до четырех байтов, и что это выравнивание не должны быть включены в размер? Другие куски в других местах либо не выровнены, или выровнены с выравниванием, включенным в размер. Здесь, однако, это не входит. Любой из этих трех типов поведения будет в порядке. Разумный формат выбрал бы один. PSD, конечно, использует все три и более.
Попытка извлечь данные из PSD файла - это все равно, что найти что-то на чердаке ваш эксцентричный старый дядя, который умер в чудовищной атаке пресноводных акул на его 58-й день рождения. Эта последняя деталь может не иметь значения для целей сравнения, но в этот момент я провожу много времени, воображая забавные судьбы для людей ответственность за это Рубе Голдберг в формате файла.
Ранее я пытался заполучить последние спецификации для формата файлов PSD. Сделать это, Я должен был обратиться к ним за разрешением обратиться к ним, чтобы они рассмотрели возможность отправки мне этот священный том. Это должно было бы отправить по факсу им копию какого-либо документа или другие, вероятно, подписаны кровью. Я могу только представить, что они делают этот процесс так трудно, потому что они сильно стыдятся того, что создали эту мерзость. я естественно, не был достаточно легковерным, чтобы пройти через эту процедуру, но если бы я сделал Итак, я бы распечатал каждую страницу спецификации и поджег их все. Если бы это было в моих силах, я бы собрал каждую копию этих спецификаций и запустил их на космическом корабле прямо под солнцем.

PSD не мой любимый формат файла.

Просто, чтобы вы были предупреждены. :)

Ответ 3

Спецификация формата файла PSD, написанная Adobe, находится здесь:

http://www.adobe.com/devnet-apps/photoshop/fileformatashtml/

Последнее обновление: июнь 2012 года. Насколько я знаю, это самый доступный источник информации о формате файла PSD, даже есть несколько ошибок.

Сначала я рекомендую начать, разделив PSD на блоки.

Наслаждайтесь!