Psd Splitter

Download Psd Splitter: PsdSplit_v1.5.exe (217 kB)

«Как распарсить псд» рунет объясняет очень скудно, всё больше какие-то неудобоваримые советы и неработающие примеры. Нерусский гугл на вопросы «Parse psd», «Export layers from psd» даёт уже побольше информации, есть уже почти готовые решения в исходном виде, но их надо мучительно долго собирать из исходников (чтобы в итоге констатировать, что они работают не так, как ожидается)… Короче, пришлось писать своё.

PsdSplit — утилита с графическим интерфейсом, предназначенная для парсинга файлов Adobe Photoshop (psd).
Позволяет открывать psd файлы, просматривать содержащиеся внутри слои, экспортировать их в файлы различных форматов (jpeg, png, bmp, jng, tiff), создавать xml описание экспортированных слоёв. Корректно обработывает psd  c RGB Color.  Индексированные цвета в настоящее время не поддерживаются (за ненадобностью). Вроде как корректно обрабатываются  маски (кроме векторных). Разные хитросделанные эффекты — под вопросом. Для того, чтобы изображение, содержащее какие-то сложные эффекты, режимы блендинга и т.п. было успешно экспортировано, этот слой следует преобразовать в фотошопе в смарт-объект. Текущий файл можно отправить в фотошоп, выбрав соответствующий пункт в меню File  или нажав кнопку с логотипом фотошопа на панели инструментов (или просто F4).

В программе нет встроенной справки, интерфейс вроде бы прост и интуитивно понятен. После открытия файла в левой панели будут отображены содержащиеся в нём слои, в левой нижней части — панель со свойствами текущего слоя, а основное рабочее место занято изображением, содержащимся в слое.

В меню Layers содержатся пункты для  выделения необходимых слоёв и команда Export, которая приводит к появлению диалогового окна с настройками экспорта. Здесь можно выбрать путь для экспорта изображений, задать режим иеррархии для групп слоёв, настроить параметры XML файла, выбрать формат изображений (отдельно для слоёв с прозрачностью и без), а также задать уровень сжатия для форматов с потерей качества (jpeg, jng). Можно указывать несуществующий путь — программа предложит создать папку в указанном месте.

Так как изображения в данный момент уже сформированы, то сам экспорт происходит практически мгновенно. В случае какой-либо ошибки будет выдано соответствующее сообщение и работа с программой может быть продолжена. На данном этапе возможно появление ошибок, связанных с тем, что указанный путь не доступен для записи или в имени слоя (а соответственно и файла) содержатся какие-то недопустимые символы (например ‘?’ или »). Проверка на корректность имён слоёв в данной версии не производится. В случае успешного экспорта в статусной строке будет сообщение: Selected layers have been exported successfully.

Начиная с версии 1.3 добавлена возможность сборки полученных слоев (а равно и любых сторонних файлов) в текстурный атлас. Поддерживаются как квадратные текстуры (со сторонами, кратными степени двойки), так и текстуры произвольного размера. Формат описания текстурного атласа прост и соответствует тому, который используется для моих личных нужд. Но поскольку это обычный текстовый файл — то не составит особого труда сконвертировать его под свои собственные надобности. Формат сохраняемых текстур для атласов — jpeg, png, bmp (возможно в перспективе PVRTC и DXT). Поворот текстуры на 90 градусов не поддерживается. Алгоритм упаковки (собственная переработка той информации, которой поделился google) пакует мгновенно и достаточно плотно. За время тестирования очевидных неразрешимых коллизий не выявлено.

psdSplit2_picture2

 

В версии 1.4 переработан интерфейс и добавлена возможность экспортировать анимацию из слоев psd в текстурный атлас + файл, содержащий описание кадров анимации. Формат описания анимации является простым текстовым файлом, в котором перечислены координаты каждого изображения очередного кадра и некоторые другие параметры. Данный формат используется для организации покадровой 2D анимации в духе Marmalade SDK.

PsdSplit3_picture3

В версии 1.5 добавлена возможность получать векторный контур из изображения слоя. Лично мне это понадобилось, когда я подрубал физику к своим объектам. Описывать полигонами контур растровых картинок вручную оказалось мучительным делом, какого-либо инструмента, могущего помочь в этом деле что-то не нашлось… Поэтому как всегда пришлось писать свое. Кроме того, векторный контур может быть полезен для определения клика по объекту в игре на смартфонах и планшетах. Попадание точки в многоугольник определяется быстро и элементарно и обходится намного дешевле, чем чтение пикселов из текстуры. Более того, на тач-скринах как раз и требуется некоторое округления картинки, потому как пальцем попадать в пикселы крайне не удобно и чревато неаккуратностью. Вообщем, сделал, пользуюсь, доволен и всем того желаю.

PsdParser является FreeWare — вы можете использовать его без каких-либо ограничений и для любых целей. Лично мне понадобился для экспорта из psd небольших по размеру прозрачных картинок (jng) при написании Android игры.  Некоторые товарищи по достоинству оценят этот продукт исходя из тех соображений, что он позволяет использовать на практике файлы psd без Photoshop’a, т.е. отпадает надобность покупать этот самый Photoshop за немалые деньги.
Инструмент оказался весьма удобным удобным и полезным, так что не могу не поделиться им со всеми нуждающимися. Пользуйтесь на здоровье.

Download Psd Splitter: PsdSplit_v1.5.exe (217 kB)

Наряду с письменными благодарностями и устными восторгами, высоко ценятся денежные пожертвования:

Это будет +1 к вашей карме. Ещё кармических плюсов можно заработать, посетив http://www.chance.by и проделав там пару простых манипуляций.

Все вопросы, отзывы, замечания, предложения по улучшению — можно оставлять в комментариях, можно отправлять на мыло или в skype (они указаны здесь: http://papirosnik.info/about/).

42 комментария to “Psd Splitter”


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

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

Powered by WordPress. Designed by elogi.