Поринаємо у скриптинг для Фотошопу – Photoshopers – Medium

фотошопу

Підготовка

Вам знадобиться програма Adobe ExtendScript Toolkit, ваш фотошоп і трохи старанності.

Після встановлення запускаємо ExtendScript Toolkit і в лівому-верхньому куті змінюємо "ExtendScript Toolkit CC" з меню, що випадає на Фотошоп. Робимо це для того, щоб по натисканню зеленої стрілочки наш скрипт запускався у Фотошопі.

скриптинг

Ми готові. Весь код, який йтиме далі, можна писати і виконувати у свіжовстановленому ExtendScript Toolkit, а по закінченню цього дійства - зберегти у файл .jsx і користуватися на власне задоволення.

Не будемо вникати в об'єктну модель Фотошопу та інші складні терміни, про які ви зможете прочитати в офіційній документації (навіть із картинками). Посилання є наприкінці посту.

Робота з активним шаром

Найчастіше ми хочемо щось зробити з активним шаром. Для цього необхідно звернутися до Фотошопу (app), потім до активного документа (activeDocument) і, нарешті, до нашого шару (activeLayer).

У шару є характеристики і способи (виконані події), як і в інших об'єктів (документів, каналів, тексту, векторних шейпів, …).

Наприклад, щоб дізнатися ім'я шару - потрібно звернутися до властивості name.

А що б перейменувати шар:

Приховати чи показати шар – властивість visible.

Порушувати вміст шару по полотну метод translate.

А також можна дізнаватися межі вмісту (bounds), змінювати прозорість шару (opacity) і заливки (fillOpacity), дублювати (duplicate), масштабувати (resize) і так далі.

Повний перелік властивостей та методів для всіх доступних об'єктів можна дізнатися в офіційній документації, посилання на яку я прикріпив наприкінці посту.

Ускладнюємо завдання

Припустимо, у нас є документ із текстовим шаром (у ньому щось написано).

Щоб відразу поринути з головою в скриптинг, напишемо код, який буде впізнавати шрифт, розмір, інтерліньяж і колір написаного тексту і вставляти їх в ім'я шару. Якомусь верстальнику буде приємно.

Після виконання такого скрипту ім'я нашого шару перетвориться на щось подібне:

ArialMT, 14 pt, #000000

Або нічого не станеться, тому що ми можемо зустрітися з нашим першим багом Фотошопу. ☺

Справа в тому, що якщо створити новий текстовий шар і не змінювати колір, а залишити дефолтний чорний (#000000), то з якоїсь причини Фотошоп не може отримати це значення. Подібний баг далеко не єдиний, але часто вони перемагаються досить легко - за допомогою javascript-конструкції "try ... catch". Дана синтаксична конструкція намагається виконати шматок коду, прописаний у try, а якщо виникає помилка - виконує шматок коду з catch.

Отже, фіксуємо можливу помилку з визначенням кольору:

Тепер наш код точно спрацює.

Це вже щось схоже на потрібний результат, але ми підемо далі і додамо ще трохи магії.

Нижче фінальна версія скрипту, в якій я пропоную вам розібратися самостійно.

У результаті ім'я нашого шару перетвориться на щось схоже:

Arial Bold Italic 30px/40px #333000 або PT Sans 18px #ff0000

Про запуск скриптів та призначення їх на гарячі клавіші повторювати не буду. Краще почитайте у статті Сергія Пехтерєва.