Учимся писать скрипты для Photoshop

Веб-дизайн и аналитика / Статья от 1 февраля 2014 г. / 26026 просмотров

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

Хорошая новость для ленивых дизайнеров: в Photoshop тоже можно писать скрипты. Легко.

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

Раньше я думал, что написание скриптов — это удел суровых программистов, однако несколько месяцев назад я решил вникнуть в суть вопроса, и получил удивительные результаты. Я был неправ, и сегодня я покажу, что, хотя написание скриптов для Photoshop и требует некоторых навыков программирования, понять методику их написания не составит труда даже для непрограммистов.

Для начала давайте найдем ответ на один очевидный вопрос.

Зачем дизайнеру нужно писать скрипты?

Зачем нам нужно тратить время на то, чтобы научиться писать сценарии в Photoshop, если в нем уже есть много действий (actions), которые и так автоматизируют большинство процессов? Ответ — интерактивность. Используя готовые действия, вы не можете контролировать их, просматривая происходящее как киноленту, которая раз за разом повторяет одно и то же. Вы не можете внести свои изменения в эту череду событий.

Сценарии же более динамичны, их поведение меняется в соответствии с параметрами ввода или контекстом использования. Звучит заманчиво, не так ли?

Требования

Вам не обязательно быть продвинутым программистом, чтобы писать сценарии; я просто графический дизайнер, как и большинство из вас. Но вы должны по крайней мере иметь базовое представление о Javascript и владеть некоторым опытом работы со свойствами и методами, чтобы получить максимум от этой статьи.

Если вы не знакомы с Javascript, не бойтесь! Есть много мест, чтобы изучить основы программирования. Codecademy, например, имеет очень много интересных интерактивных уроков.

Я работаю в Adobe Photoshop CS5, но все, что мы расскажем, относится и к более новым версиям; Adobe не сделал каких-либо серьезных обновлений для скриптового API после CS5, судя по документации сценариев из CS6.

Приступаем к работе

При записи действий в Photoshop, вы устанавливаете порядок действий для достижения определенного результата — это ваш алгоритм. Затем вы нажимаете «Запись» и повторяете их в Photoshop один за другим. Сценарии очень похожи на действия, но вместо того, чтобы делать все нужные шаги в Photoshop, вы пишете их в коде. Большинство действий на самом деле имеют свой эквивалент в виде скриптов.

Допустим, вы создаете действие, которое масштабирует документ до 150% от своего первоначального размера. Вы должны пройти через следующие этапы:

  1. Открыть Image » Image Size.
  2. Ввести 150% в Ширину и Высоту.
  3. Нажать «Ок».

Тот же самый процесс с помощью скрипта будет выглядеть следующим образом:

  1. Вызовите приложение: app.
  2. Выберите дочерний объект: ActiveDocument.
  3. Вызовите функцию для изменения размеров изображения: ResizeImage(ширина, высота).

Итоговый код будет выглядеть следующим образом:

app.ActiveDocument.ResizeImage("150%", "150%");

Языки программирования

Есть три способа написания сценариев в Photoshop: используя AppleScript на Mac, VBScript на ОС Windows или Javascript на любой платформе. Я использую третий вариант, потому что он является кросс-платформенным решением, плюс у меня уже есть некоторый опыт работы с Javascript.

Инструментарий

Adobe имеет свою собственную утилиту для написания скриптов, которая называется ExtendedScript Toolkit.

Главное окно Adobe ExtendedScript ToolkitЭтот инструмент поставляется с Photoshop, вы можете найти его в следующей папке:
Mac OS X: /Applications/Utilities/Adobe Utilities CS6/ExtendScript Toolkit CS6/
Windows: C:/Program Files/ Adobe/Adobe Utilities CS6/ExtendScriptToolkit CS6

Пользовательский интерфейс ExtendedScript Toolkit очень прост. чтобы начать писать сценарии, сначала выберите целевое приложение в раскрывающемся меню. ЕслиPhotoshop работает, посмотрите на зеленый значок цепи возле выпадающего меню.

Теперь вы можете написать что-то вроде этого:
alert("Hello Photoshop!");
Нажмите CMD + R (или просто нажмите кнопку Play на панели инструментов) для запуска сценария. ExtendedScript Toolkit должен перейти в Photoshop и показать окно предупреждения:

ExtendedScript Toolkit имеет еще некоторые другие полезные инструменты для отладки, но мы не будем касаться их в нашей статье. Вы можете узнать больше о том, как ими пользоваться, перейдя в Help » JavaScript Tools Guide.

В принципе, вы можете использовать любой текстовый редактор, чтобы написать сценарий. Сохраните файл в формате JSX. Чтобы запустить его, вам придется зайти вFile » Scripts » Browse в Photoshop и выбрать его. С другой стороны, просто откройте файл сценария в Photoshop — результат будет тот же. Вы также можете добавить следующую строку кода в верхней части сценария, чтобы файл всегда открывался в Photoshop:

#target photoshop

Сохраните скрипты в Photoshop / Presets/ Scripts, чтобы иметь доступ к ним из Files » Scripts. Вы также можете настроить горячие клавиши: просто перейдите Edit »Keyboard Shortcuts, далее File » Scripts » [НазваниеВашегоСценария] и ExtendedScript Toolkit может запускать и отлаживать код из интегрированной среды разработки, у которой есть своя объектная модель для отображения, что очень удобно в работе. Таким образом, я рекомендую использовать Toolkit для написания сценариев. К сожалению, в Mac-версии иногда случаются сбои, так что имейте это в виду и не ленитесь почаще сохраняться.

Объектная модель Photoshop

Для упрощения написания сценариев вам важно понимать, как относятся друг к другу объекты в объектной модели документа в Photoshop (DOM). Это не так сложно, если посмотреть на сам Photoshop.

В статье на SmashingMagazine разобран также реальный пример использования сценариев, где работа с DOM-моделью ведется более активно.

Основным объектом DOM в Photoshop является приложение ( application). В приложении, у нас есть набор документов, которые в настоящий момент открыты в Photoshop.

Каждый документ содержит элементы — такие, как слои (называется ArtLayers), группы слоев (называется LayerSets), каналы, история и так далее — все как в обычном PSD-документе.

Упрощенная визуализация DOM в Photoshop представлена ниже. Более подробная иерархия содержится в руководстве « Adobe Photoshop CS6 Scripting Guide» (PDF).

Упрощенная визуализация DOM-модели Photoshop

Каждый из этих объектов имеет свои свойства и методы, с которыми вы можете работать. Например, чтобы изменить прозрачность выбранного слоя, вам нужно выполнить Application » Document » Layer » Opacity и установить нужное значение. Код для этого алгоритма будет выглядеть так:

app.activeDocument.activeLayer.opacity = 50;

Как вы уже догадались, ActiveDocument и activeLayer определяют текущий документ и выбранный слой.

Вы можете найти описание большинства объектов и их свойств и методов в « Adobe Photoshop CS6 JavaScript Scripting Reference» (PDF), или в ExtendedScript Toolkit, в разделе Help » Object Model Viewer.



Кстати, внизу страницы есть батарейка. Она позволяет анонимно (ха!) оценить статью. Это тот случай, когда Ваше мнение действительно важно для нас.


Похожие статьи
Интернет-магазин. Что выбрать: CMS или Framework?Интернет-магазин. Что выбрать: CMS или Framework?от 2 июля 2015 г.
Инфографика: история PhotoshopИнфографика: история Photoshopот 15 мая 2015 г.
Как сделать Favicon?Как сделать Favicon?от 3 февраля 2014 г.

Оформите подписку