Как написать скрипт для фотошопа

Надоело делать повторяющиеся задачи в Photoshop? Создайте скрипты фотошоп для автоматизации. В этой статье вы узнаете как освободить свое время для творчества!
Если вы используете Photoshop более нескольких месяцев, вы, несомненно, сталкивались с необходимостью повторять одинаковые задачи.

Действия — это отличное решение, но у них есть одно серьезное ограничение: они “глупы” и не могут сделать ничего более сложного, чем воспроизводить предписанные серии шагов.
К счастью, Adobe уже давно распознала эту проблему и добавила поддержку скриптов в Photoshop и большинство других своих инструментов. Скриптовый движок Photoshop позволяет писать в Applescript, VBScript или JavaScript и выполнять сложные операции, которые обычно требуют вмешательства человека.

Готовые скрипты можно скачать с файлообменников, можно заказать их написание специалистам, либо создать самостоятельно.

Ваши скрипты могут делать все, что может Photoshop

Итак, каков пример того, что скрипт может сделать, а действие — нет? Возьмите самый простой пример включения и выключения видимости слоя. Действие может легко отключить видимость слоя (или включить его), но оно не может разумно переключать видимость. Скрипт может определить текущее состояние видимости данного слоя, а затем выполнить другую задачу в соответствии с этим состоянием.

Именно эта способность принимать условные решения отличает скрипты от действий и делает их сверхмощными.
Естественно, создание скриптов требует небольшого навыка программирования, но если вы уже знакомы с JavaScript, вам будет очень легко начать работу. Чтобы сделать его немного менее болезненным, Adobe отлично разработала руководство по написанию скриптов, а также несколько превосходных примеров скриптов.

Версии фотошопа

Если вы используете версию Photoshop более раннюю, чем CS5, руководство по созданию скриптов доступно в папке «Приложение»> «Photoshop»> «Скрипты». Если вы используете CS6, вы обнаружите, что он не установлен по умолчанию. Вам нужно скачать его здесь (https://www.adobe.com/devnet/photoshop/scripting.html?red=a). Вы также можете найти полные справочники скриптов в этой же ссылке.
Когда вы освоитесь со скриптами, вы сможете автоматизировать многие функции в Photoshop, будь то создание 1000 веб-изображений или автоматическое создание метаданных с вашими уведомлениями об авторских правах.

Действие или скрипт?

При принятии решения о том, требует ли задача действия или скрипта, золотое правило, которое следует помнить, состоит в том, что действия отлично подходят для выполнения идентичных задач снова и снова.
Скрипты позволяют вам создать пользовательский условный результат, который идеально подходит для аналогичных, но не идентичных задач.

Сделайте свой собственный скрипт

Шаг 01

Вы можете создать свой скрипт в Textpad или Notepad. Вы найдете полное справочное руководство в каталоге установки Photoshop под названием «Руководство по написанию скриптов». Там же есть несколько примеров скриптов.
Использование JavaScript в качестве языка скриптов (Photoshop также поддерживает Visual Basic и AppleScript), эти языки обеспечат работу вашего скрипта на ПК и Mac. Для того, чтобы проиллюстрировать суть процесса, можно создать скрипт, который просто выводит сообщение.

Шаг 02

Введите следующий текст в ваш текстовый редактор:

var docRef = app.activeDocument; заменить на картинку
var dlg = new Window(‘dialog’, ‘My first script!’,[100,100,480,250]);
dlg.btnPnl = dlg.add(‘panel’, [25,15,365,125], ‘Hello world!’);
dlg.btnPnl.testBtn = dlg.btnPnl.add(‘button’, [15,30,305,50], ‘Finished’, {name:’ok’});
dlg.btnPnl.testBtn.onClick = dobuild;
dlg.show();
function dobuild() {
alert(«Congratulations — it all worked!»);
dlg.close();
}

Сохраните документ как testscript.jsx, если вы используете Photoshop CS2, или testscript.js, если вы используете Photoshop CS3 и выше.

Шаг 03

В Photoshop откройте документ, над которым вы работаете. Выберите «Файл»> «Скрипты»> «Обзор» и найдите свой скрипт (или один из примеров скриптов, если вы еще не набрались смелости, чтобы создать свой собственный).

Как добавить скрипты в фотошоп

Все хорошо, ваш скрипт откроется и выполнится. Если вы используете приведенный выше пример скрипта, вы увидите диалоговое окно с текстом и кнопкой.
Нажав на кнопку, вы увидите всплывающее сообщение, но при нажатии кнопки Photoshop сможет выполнять любые задачи. Вот где проявляется настоящая сила скриптов! Скрипты могут делать все, что может делать Photoshop: применять фильтры, изменять размеры документов, отображать или скрывать слои, добавлять корректирующие слои, а также сохранять и экспортировать документы.

Установите скрипты фотошоп на основе событий

Скрипты (и действия) могут выполняться автоматически в Photoshop при возникновении определенного события. Эти события могут включать открытие Photoshop, создание нового документа, печать и многое другое. Скрипты на основе событий — это идеальный способ справляться с общими задачами, которые вы обычно выполняете время от времени, в зависимости от конкретного события. Например, вы можете отредактировать метаданные для вашего файла при первом его создании. Используя скрипт, основанный на событиях, вы можете открыть всплывающую панель информации о файле, как только создадите новый документ.
Настроить скрипт на основе событий очень просто — следуйте пошаговому руководству ниже:

  • Шаг 01
    Начните с создания скрипта фотошоп, который вы хотели бы выполнить, или взгляните на некоторые примеры скриптов, предоставленных Adobe.
  • Шаг 02
    Откройте диспетчер скриптов на основе событий, выбрав «Файл»> «Скрипты»> «Диспетчер событий скриптов». Когда диалоговое окно открыто, установите флажок «Включить события для запуска скриптов / действий».
  • Шаг 03
    Выберите событие из выпадающего списка Photoshop Event. Если вы не видите точное событие, которое хотите записать, обратитесь к справочному руководству по написанию скриптов для получения подробной информации о том, как добавлять собственные события на основе внутренних прослушиваемых событий Photoshop.
  • Шаг 04
    Выберите ваш скрипт или выберите одну из пред установок, включенных в раскрывающийся список скриптов. Если вы предпочитаете выполнить действие на основе этого события, выберите вместо него триггер «действие» и просмотрите список доступных действий.
  • Шаг 05
    Нажмите кнопку «Готово», чтобы закрыть диспетчер событий скрипта, или кнопку «Добавить», если вы хотите добавить дополнительные скрипты на основе событий.
  1. Руководство пользователя Photoshop
  2. Введение в Photoshop
    1. Мечтайте об этом. Сделайте это.
    2. Новые возможности Photoshop
    3. Редактирование первой фотографии
    4. Создание документов
    5. Photoshop | Часто задаваемые вопросы
    6. Системные требования Photoshop
    7. Перенос наборов настроек, операций и настроек
    8. Знакомство с Photoshop
  3. Photoshop и другие продукты и услуги Adobe
    1. Работа с графическим объектом Illustrator в Photoshop
    2. Работа с файлами Photoshop в InDesign
    3. Материалы Substance 3D для Photoshop
    4. Photoshop и Adobe Stock
    5. Работа со встроенным расширением Capture в Photoshop
    6. Библиотеки Creative Cloud Libraries
    7. Библиотеки Creative Cloud в Photoshop
    8. Работа в Photoshop с использованием Touch Bar
    9. Сетка и направляющие
    10. Создание операций
    11. Отмена и история операций
  4. Photoshop на iPad
    1. Photoshop на iPad | Общие вопросы
    2. Знакомство с рабочей средой
    3. Системные требования | Photoshop на iPad
    4. Создание, открытие и экспорт документов
    5. Добавление фотографий
    6. Работа со слоями
    7. Рисование и раскрашивание кистями
    8. Выделение участков и добавление масок
    9. Ретуширование композиций
    10. Работа с корректирующими слоями
    11. Настройка тональности композиции с помощью слоя «Кривые»
    12. Применение операций трансформирования
    13. Обрезка и поворот композиций
    14. Поворот, панорамирование, масштабирование и восстановление холста
    15. Работа с текстовыми слоями
    16. Работа с Photoshop и Lightroom
    17. Получение отсутствующих шрифтов в Photoshop на iPad
    18. Японский текст в Photoshop на iPad
    19. Управление параметрами приложения
    20. Сенсорные ярлыки и жесты
    21. Комбинации клавиш
    22. Изменение размера изображения
    23. Прямая трансляция творческого процесса в Photoshop на iPad
    24. Исправление недостатков с помощью восстанавливающей кисти
    25. Создание кистей в Capture и их использование в Photoshop
    26. Работа с файлами Camera Raw
    27. Создание и использование смарт-объектов
    28. Коррекция экспозиции изображений с помощью инструментов «Осветлитель» и «Затемнитель»
  5. Бета-версия веб-приложения Photoshop
    1. Часто задаваемые вопросы | Бета-версия веб-приложения Photoshop 
    2. Общие сведения о рабочей среде
    3. Системные требования | Бета-версия веб-приложения Photoshop
    4. Комбинации клавиш | Бета-версия веб-приложения Photoshop
    5. Поддерживаемые форматы файлов | Бета-вервия веб-приложения Photoshop
    6. Открытие облачных документов и работа с ними
    7. Совместная работа с заинтересованными сторонами
    8. Ограниченные возможности редактирования облачных документов
  6. Облачные документы
    1. Облачные документы Photoshop | Часто задаваемые вопросы
    2. Облачные документы Photoshop | Вопросы о рабочем процессе
    3. Работа с облачными документами и управление ими в Photoshop
    4. Обновление облачного хранилища для Photoshop
    5. Не удается создать или сохранить облачный документ
    6. Устранение ошибок с облачными документами Photoshop
    7. Сбор журналов синхронизации облачных документов
    8. Общий доступ к облачным документам и их редактирование
    9. Общий доступ к файлам и комментирование в приложении
  7. Рабочая среда
    1. Основные сведения о рабочей среде
    2. Более быстрое обучение благодаря панели «Новые возможности» в Photoshop
    3. Создание документов
    4. Работа в Photoshop с использованием Touch Bar
    5. Галерея инструментов
    6. Установки производительности
    7. Использование инструментов
    8. Сенсорные жесты
    9. Возможности работы с сенсорными жестами и настраиваемые рабочие среды
    10. Обзорные версии технологии
    11. Метаданные и комментарии
    12. Комбинации клавиш по умолчанию
    13. Возможности работы с сенсорными жестами и настраиваемые рабочие среды
    14. Помещение изображений Photoshop в другие приложения
    15. Установки
    16. Комбинации клавиш по умолчанию
    17. Линейки
    18. Отображение или скрытие непечатных вспомогательных элементов
    19. Указание колонок для изображения
    20. Отмена и история операций
    21. Панели и меню
    22. Помещение файлов
    23. Позиционирование элементов с привязкой
    24. Позиционирование с помощью инструмента «Линейка»
    25. Наборы настроек
    26. Настройка комбинаций клавиш
    27. Сетка и направляющие
  8. Разработка содержимого для Интернета, экрана и приложений
    1. Photoshop для дизайна
    2. Монтажные области
    3. Просмотр на устройстве
    4. Копирование CSS из слоев
    5. Разделение веб-страниц на фрагменты
    6. Параметры HTML для фрагментов
    7. Изменение компоновки фрагментов
    8. Работа с веб-графикой
    9. Создание веб-фотогалерей
  9. Основные сведения об изображениях и работе с цветом
    1. Изменение размера изображений
    2. Работа с растровыми и векторными изображениями
    3. Размер и разрешение изображения
    4. Импорт изображений из камер и сканеров
    5. Создание, открытие и импорт изображений
    6. Просмотр изображений
    7. Ошибка «Недопустимый маркер JPEG» | Открытие изображений
    8. Просмотр нескольких изображений
    9. Настройка палитр цветов и образцов цвета
    10. HDR-изображения
    11. Подбор цветов на изображении
    12. Преобразование между цветовыми режимами
    13. Цветовые режимы
    14. Стирание фрагментов изображения
    15. Режимы наложения
    16. Выбор цветов
    17. Внесение изменений в таблицы индексированных цветов
    18. Информация об изображениях
    19. Фильтры искажения недоступны
    20. Сведения о цвете
    21. Цветные и монохромные коррекции с помощью каналов
    22. Выбор цветов на панелях «Цвет» и «Образцы»
    23. Образец
    24. Цветовой режим (или режим изображения)
    25. Цветовой оттенок
    26. Добавление изменения цветового режима в операцию
    27. Добавление образцов из CSS- и SVG-файлов HTML
    28. Битовая глубина и установки
  10. Слои
    1. Основные сведения о слоях
    2. Обратимое редактирование
    3. Создание слоев и групп и управление ими
    4. Выделение, группировка и связывание слоев
    5. Помещение изображений в кадры
    6. Непрозрачность и наложение слоев
    7. Слои-маски
    8. Применение смарт-фильтров
    9. Композиции слоев
    10. Перемещение, упорядочение и блокировка слоев
    11. Маскирование слоев при помощи векторных масок
    12. Управление слоями и группами
    13. Эффекты и стили слоев
    14. Редактирование слоев-масок
    15. Извлечение ресурсов
    16. Отображение слоев с помощью обтравочных масок
    17. Формирование графических ресурсов из слоев
    18. Работа со смарт-объектами
    19. Режимы наложения
    20. Объединение нескольких фрагментов в одно изображение
    21. Объединение изображений с помощью функции «Автоналожение слоев»
    22. Выравнивание и распределение слоев
    23. Копирование CSS из слоев
    24. Загрузка выделенных областей на основе границ слоя или слоя-маски
    25. Просвечивание для отображения содержимого других слоев
    26. Слой
    27. Сведение
    28. Совмещенные изображения
    29. Фон
  11. Выделения
    1. Рабочая среда «Выделение и маска»
    2. Быстрое выделение областей
    3. Начало работы с выделениями
    4. Выделение при помощи группы инструментов «Область»
    5. Выделение при помощи инструментов группы «Лассо»
    6. Выбор цветового диапазона в изображении
    7. Настройка выделения пикселей
    8. Преобразование между контурами и границами выделенной области
    9. Основы работы с каналами
    10. Перемещение, копирование и удаление выделенных пикселей
    11. Создание временной быстрой маски
    12. Сохранение выделенных областей и масок альфа-каналов
    13. Выбор областей фокусировки в изображении
    14. Дублирование, разделение и объединение каналов
    15. Вычисление каналов
    16. Выделение
    17. Ограничительная рамка
  12. Коррекции изображений
    1. Деформация перспективы
    2. Уменьшение размытия в результате движения камеры
    3. Примеры использования инструмента «Восстанавливающая кисть»
    4. Экспорт таблиц поиска цвета
    5. Корректировка резкости и размытия изображения
    6. Общие сведения о цветокоррекции
    7. Применение настройки «Яркость/Контрастность»
    8. Коррекция деталей в тенях и на светлых участках
    9. Корректировка «Уровни»
    10. Коррекция тона и насыщенности
    11. Коррекция сочности
    12. Настройка насыщенности цвета в областях изображения
    13. Быстрая коррекция тона
    14. Применение специальных цветовых эффектов к изображениям
    15. Улучшение изображения при помощи корректировки цветового баланса
    16. HDR-изображения
    17. Просмотр гистограмм и значений пикселей
    18. Подбор цветов на изображении
    19. Кадрирование и выпрямление фотографий
    20. Преобразование цветного изображения в черно-белое
    21. Корректирующие слои и слои-заливки
    22. Корректировка «Кривые»
    23. Режимы наложения
    24. Целевая подготовка изображений для печатной машины
    25. Коррекция цвета и тона с помощью пипеток «Уровни» и «Кривые»
    26. Коррекция экспозиции и тонирования HDR
    27. Фильтр
    28. Размытие
    29. Осветление или затемнение областей изображения
    30. Избирательная корректировка цвета
    31. Замена цветов объекта
  13. Adobe Camera Raw
    1. Системные требования Camera Raw
    2. Новые возможности Camera Raw
    3. Введение в Camera Raw
    4. Создание панорам
    5. Поддерживаемые объективы
    6. Виньетирование, зернистость и удаление дымки в Camera Raw
    7. Комбинации клавиш по умолчанию
    8. Автоматическая коррекция перспективы в Camera Raw
    9. Обратимое редактирование в Camera Raw
    10. Инструмент «Радиальный фильтр» в Camera Raw
    11. Управление настройками Camera Raw
    12. Обработка, сохранение и открытие изображений в Camera Raw
    13. Совершенствование изображений с улучшенным инструментом «Удаление точек» в Camera Raw
    14. Поворот, обрезка и изменение изображений
    15. Корректировка цветопередачи в Camera Raw
    16. Краткий обзор функций | Adobe Camera Raw | Выпуски за 2018 г.
    17. Обзор новых возможностей
    18. Версии обработки в Camera Raw
    19. Внесение локальных корректировок в Camera Raw
  14. Исправление и восстановление изображений
    1. Удаление объектов с фотографий с помощью функции «Заливка с учетом содержимого»
    2. Заплатка и перемещение с учетом содержимого
    3. Ретуширование и исправление фотографий
    4. Коррекция искажений изображения и шума
    5. Основные этапы устранения неполадок для решения большинства проблем
  15. Преобразование изображений
    1. Трансформирование объектов
    2. Настройка кадрирования, поворотов и холста
    3. Кадрирование и выпрямление фотографий
    4. Создание и редактирование панорамных изображений
    5. Деформация изображений, фигур и контуров
    6. Перспектива
    7. Использование фильтра «Пластика»
    8. Масштаб с учетом содержимого
    9. Трансформирование изображений, фигур и контуров
    10. Деформация
    11. Трансформирование
    12. Панорама
  16. Рисование и живопись
    1. Рисование симметричных орнаментов
    2. Варианты рисования прямоугольника и изменения обводки
    3. Сведения о рисовании
    4. Рисование и редактирование фигур
    5. Инструменты рисования красками
    6. Создание и изменение кистей
    7. Режимы наложения
    8. Добавление цвета в контуры
    9. Редактирование контуров
    10. Рисование с помощью микс-кисти
    11. Наборы настроек кистей
    12. Градиенты
    13. Градиентная интерполяция
    14. Заливка и обводка выделенных областей, слоев и контуров
    15. Рисование с помощью группы инструментов «Перо»
    16. Создание узоров
    17. Создание узора с помощью фильтра «Конструктор узоров»
    18. Управление контурами
    19. Управление библиотеками узоров и наборами настроек
    20. Рисование при помощи графического планшета
    21. Создание текстурированных кистей
    22. Добавление динамических элементов к кистям
    23. Градиент
    24. Рисование стилизованных обводок с помощью архивной художественной кисти
    25. Рисование с помощью узора
    26. Синхронизация наборов настроек на нескольких устройствах
  17. Текст
    1. Добавление и редактирование текста
    2. Универсальный текстовый редактор
    3. Работа со шрифтами OpenType SVG
    4. Форматирование символов
    5. Форматирование абзацев
    6. Создание эффектов текста
    7. Редактирование текста
    8. Интерлиньяж и межбуквенные интервалы
    9. Шрифт для арабского языка и иврита
    10. Шрифты
    11. Поиск и устранение неполадок, связанных со шрифтами
    12. Азиатский текст
    13. Создание текста
    14. Ошибка Text Engine при использовании инструмента «Текст» в Photoshop | Windows 8
  18. Видео и анимация
    1. Видеомонтаж в Photoshop
    2. Редактирование слоев видео и анимации
    3. Общие сведения о видео и анимации
    4. Предварительный просмотр видео и анимации
    5. Рисование кадров в видеослоях
    6. Импорт видеофайлов и последовательностей изображений
    7. Создание анимации кадров
    8. 3D-анимация Creative Cloud (предварительная версия)
    9. Создание анимаций по временной шкале
    10. Создание изображений для видео
  19. Фильтры и эффекты
    1. Использование фильтра «Пластика»
    2. Использование эффектов группы «Галерея размытия»
    3. Основные сведения о фильтрах
    4. Справочник по эффектам фильтров
    5. Добавление эффектов освещения
    6. Использование фильтра «Адаптивный широкий угол»
    7. Фильтр «Масляная краска»
    8. Эффекты и стили слоев
    9. Применение определенных фильтров
    10. Растушевка областей изображения
  20. Сохранение и экспорт
    1. Сохранение файлов в Photoshop
    2. Экспорт файлов в Photoshop
    3. Поддерживаемые форматы файлов
    4. Сохранение файлов в других графических форматах
    5. Перемещение проектов между Photoshop и Illustrator
    6. Сохранение и экспорт видео и анимации
    7. Сохранение файлов PDF
    8. Защита авторских прав Digimarc
  21. Печать
    1. Печать 3D-объектов
    2. Печать через Photoshop
    3. Печать и управление цветом
    4. Контрольные листы и PDF-презентации
    5. Печать фотографий в новом макете раскладки изображений
    6. Печать плашечных цветов
    7. Дуплексы
    8. Печать изображений на печатной машине
    9. Улучшение цветной печати в Photoshop
    10. Устранение неполадок при печати | Photoshop
  22. Автоматизация
    1. Создание операций
    2. Создание изображений, управляемых данными
    3. Сценарии
    4. Обработка пакета файлов
    5. Воспроизведение операций и управление ими
    6. Добавление условных операций
    7. Сведения об операциях и панели «Операции»
    8. Запись инструментов в операциях
    9. Добавление изменения цветового режима в операцию
    10. Набор средств разработки пользовательского интерфейса Photoshop для внешних модулей и сценариев
  23. Управление цветом
    1. Основные сведения об управлении цветом
    2. Обеспечение точной цветопередачи
    3. Настройки цвета
    4. Работа с цветовыми профилями
    5. Управление цветом документов для просмотра в Интернете
    6. Управление цветом при печати документов
    7. Управление цветом импортированных изображений
    8. Выполнение цветопробы
  24. Подлинность контента
    1. Подробнее об учетных данных для содержимого
    2. Идентичность и происхождение токенов NFT
    3. Подключение учетных записей для творческой атрибуции
  25. 3D-объекты и технические изображения
    1. 3D в Photoshop | Распространенные вопросы об упраздненных 3D-функциях
    2. 3D-анимация Creative Cloud (предварительная версия)
    3. Печать 3D-объектов
    4. 3D-рисование
    5. Усовершенствование панели «3D» | Photoshop
    6. Основные понятия и инструменты для работы с 3D-графикой
    7. Рендеринг и сохранение 3D-объектов
    8. Создание 3D-объектов и анимаций
    9. Стеки изображений
    10. Процесс работы с 3D-графикой
    11. Измерения
    12. Файлы формата DICOM
    13. Photoshop и MATLAB
    14. Подсчет объектов на изображении
    15. Объединение и преобразование 3D-объектов
    16. Редактирование 3D-текстур
    17. Коррекция экспозиции и тонирования HDR
    18. Настройки панели «3D»

Photoshop поддерживает внешнюю автоматизацию посредством сценариев. В ОС Windows можно использовать языки сценариев, поддерживающие технологию автоматизации COM, например сценарий VB Script. В Mac OS можно использовать такие языки, как AppleScript, позволяющие отправлять события Apple. Эти языки не являются межплатформенными, но могут контролировать многие приложения, такие как Adobe Photoshop, Adobe Illustrator и Microsoft Office. При работе под управлением операционной системы Mac OS можно также использовать набор операций Photoshop Actions for Automator компании Apple для контроля заданий в Photoshop.

Также на любой из платформ можно использовать JavaScript. Поддержка JavaScript позволяет писать сценарии для Photoshop, которые запускаются как в ОС Windows, так и в Mac OS.

См. документацию по сценариям, установленную в папке Photoshop 2022/Scripting/Documents. Вы можете найти плагин Scriptlistener в папке Photoshop 2022/Scripting/Utilities. Дополнительные сведения см. в разделе Ресурсы Adobe CEP.

Запуск JavaScript

  1. Перейдите в «Файл» > «Сценарии» и выберите сценарий из списка. Список сценариев содержит все файлы сценариев с расширением .js или .jsx, а также сценарии, сохраненные в папке Photoshop 2022/Presets/Scripts. Для запуска сценария из другой папки выберите «Файл» > «Сценарии» > «Обзор» и укажите путь к сценарию.

Настройка автоматического запуска
сценариев и операций

События, такие как открытие, сохранение или экспорт файла в приложении Photoshop, могут запускать операции JavaScript или Photoshop. В приложении Photoshop предусмотрено несколько событий по умолчанию. Кроме того, любое событие Photoshop, допустимое в сценариях, может запустить сценарий или операцию. См. Руководство по созданию сценариев в Photoshop для получения дополнительной информации о событиях, для которых можно создавать сценарии.

  1. Выберите «Файл» > «Скрипты»>
    Диспетчер событий сценариев.

  2. Установите флажок «Включить события для выполнения сценариев/операций».

  3. В меню «Событие Photoshop» выберите событие, которое
    запустит сценарий или операцию.

  4. Выберите «Сценарий» или «Действие», а затем выберите сценарий
    или действие для запуска при возникновении этого события.

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

  5. Нажмите кнопку «Добавить». Событие и связанный с ним сценарий или действие
    отображаются в диалоговом окне.

  6. Чтобы отключить и удалить отдельные события, выберите событие
    в списке и нажмите кнопку «Удалить». Чтобы отключить все события, но оставить их
    в списке, снимите флажок «Включить события для выполнения сценариев/действий».

Предисловие: экшены в Photoshop школьники уже освоили, и без проблем добавляют логотипы своих пабликов на тысячи изображений, а некоторые девочки пакетно обрабатывают фото с пляжей. Пора бы выучить что-нибудь более сложное? Рынок, как видите, растет : )

В Photoshop для автоматизации работы существует ещё один, гораздо более продвинутый инструмент — язык программирования JavaScript. Для работы вам потребуется немного освоить скриптинг для автоматизации некоторых задач и избавления от рутины. Это ни в коем случае не программирование, не бойтесь. Для освоения вам потребуется лишь минимум Photoshop CS2 и максимум желания прокачать свои скилы.

Писать код мы будем в программе ExtendScript Toolkit, которая поставляется вместе с Photoshop, и большинство нормальных моушн-дизайнеров давно осведомлены об этой и ещё паре программ для написания кода. Я практик, поэтому и реализовывать скрипт будем под реальную задачу, которая передо мной стояли на работе.

Задача: в любых интернет-магазинах есть картинки товара, в крупных магазинах товар исчисляется десятками тысяч. Обычно сидят 2-3 девочки-ретушера и обрабатывают фотографии товара: обтравливают, добавляют белый фон, увеличивают контраст, добавляют отражения, ретушируют обложки… но упускают из вида очень важный момент – разная насыщенность, разный контраст, разный цветовой баланс отдельных изображений. Посмотрите на картинку ниже. Обложки явно отличаются по контрасту, цвету… если вывести средние тона, то корни проблемы бросаются в глаза.

64747

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

Начнем издалека. Что же такое JavaScript в Photoshop?
Я выбрал JS как язык для скриптования в продуктах Adobe, потому что он работает и на Windows, и на MAC. Если вы ярый приверженец винды, то используйте бейсик, если вы неукротимый фанат Мака, то AppleScript в помощь. А я за универсальность.

Основы:
DOM. Это та изнанка программы, которая дает нам возможность получат доступ к различным компонентам Photoshop через язык программирования. Это иерархическое представление Photoshop, каждой его части и возможности, включая работу с открытыми изображениями. Все то, что вы можете сделать мышкой, вы сможете сделать и скриптом. Например, если вы хотите получить доступ к прозрачности слоя, необходимо пройтись по пути Application> Document> Layer> Opacity, а код будет такой

app.activedocument.activeLayer.opacity = 50;

Все довольно логично, например Layer Comp class отвечает за управление просмотром нескольких версий макета в одном файле, что в общем то и делает оригинальный инструмент Photoshop.

Важно понять, что подразумевается под объектами. Сам Photoshop это объект, текст это объект, направляющие это объект, каждый канал RGB является объектом. Все, что кликается мышкой — объекты. Допустим, вы создали новый документ, а с точки зрения программы вы создали новый объект.
DOM модель в Photoshop
Основы программирования объяснять я не стану, слишком много людей с ними знакомы. Если вы не знакомы, то найдете необходимую информацию везде, начиная c Google play и заканчивая форумами школьников. Для затравки, откройте ExtendScript Toolkit и напишите: alert(«My first Hello Hell!» + app.version); Запустите через редактор скриптов, обрадуйтесь своему первому успешно скомпилированному приложению. Скрипты для Adobe Photoshop имеют расширение jsx.


Вводная информация:
Переменные обозначаются как var borderWidth = 10
var — переменная. А borderWidth — имя переменной (как думаете, что оно означает?).
Затем переменной нужно присвоить значение: = 10

В заголовке скрипта иногда имеет смысл писать строчку #target photoshop, которая будет указывать, что данный скрипт только для Photoshop.

Активный объект
Когда Вы работает в Photoshop, Вы можете рисовать только на слое, который активен в данный момент. Для скриптов тоже важно, какой объект выбран, т.к. скрипты тоже могут и будут рисовать. Ниже приведен пример создания документа и выбор слоя активным:

var doc_nmb_1 = documents.add(500, 500)
var doc_nmb_2 = documents.add(500, 500)
//Установим Document 1 как активный документ
activeDocument = doc_nmb_1
 
//Сделаем Document 2 активным
activeDocument = doc_nmb_2
 
//Добавим слоев к документам
var layer1 = doc_nmb_2.artLayers.add()
var layer2 = doc_nmb_2.artLayers.add()
 
//Сделаем 1-ой слой документа 2 активным. ActiveLayer отвечает за чтение и запись выбранного слоя.
doc_nmb_2.ActiveLayer = layer1
 
//Делаем 2-ой слой документа 2 активным
doc_nmb_2.ActiveLayer = layer2

Создание нового документа происходит благодаря следующему коду, создаются квадратные изображения в размерах 72 и 144.

var docRef = app.documents.add(72, 72)
var otherDocRef = app.documents.add (144,144)

Как видите, читать такой код не так уж и трудно. Перейдем к написанию скрипта. Первое, что мы должны сделать, это вникнуть в задачу и разработать action для применения к нужным изображениям. Сделав это, начинаем писать скрипт.

Главная фишка: конструкция If Else, которая и позволяет добавлять условия, которых не хватает в action. Уверен, многие уже, увидев зарплаты программистов, пытались освоить программирование и if else наверняка писали, поэтому по основам мы просто пробежимся:

if(!content) content =404;

Мы проверяем, есть ли у переменной content значение, и если его нет, то присваиваем значение 404. Можно расписать и более сложную обработку, например:

if ((comment == null)||(comment == “”)) {
comment = ”undefined”;
alert(“Введите комментарий, пожалуйста!);

С If мы разобрались, а что же делает else? В конструкции else мы указываем, что выполнять в том случае, если в if значение будет false.

if (name != null)
alert(“Привет ” + username +!);
else {
username = prompt(“Введите свое имя”);
alert(“Привет” + username+!);
}
 
if (doc.width > doc.height)
{ //если портрет
app.doAction('TIL320->300','2010');
} else { //если пейзаж
alert("как то так", "Error");
}

Учитывая это, мы уже может написать необходимый код с событийностью:

main()
function main()
{
if (documents.length==2480)
{ //если нет открытых документов, то
alert ("Это другой проект, его я не трогаю(", "Error"); //вот так выводятся всякие алерты
} else {
var doc = activeDocument;
if (doc.width > doc.height)
{
app.doAction('Medium Sharping','2013');
app.doAction('Correct Highlights','2013');
} else {
app.doAction('Super Sharp','2013');
app.doAction('Color neynral','2013');
}
}

Как вы видите, если изображение равняется по высоте 2480px, то просто выскакивает ругающееся на дизайнера окошко. Если изображение вертикальное, то применяется определенная группа экшенов для подготовки контента, если горизонтальная, то другая группа экшенов.

Какие ещё возможности можно добавить в скрипт, или могли бы быть просто интересны?
Создание нового документа нужного формат делается довольно просто:

var docRef = app.documents.add(297, 210, 300, "A4_gorizontal", NewDocumentMode.LAB, DocumentFill.BACKGROUNDCOLOR, 1)

Расшифруем конструкцию: (width, height, resolution, name, mode, initialFill, pixelAspectRatio)
В данном случае в конце можно добавить bitsPerChannel и colorProfileName, но думаю, для начала нам хватит и имеющейся конструкции. Единицы измерения по умолчанию пиксели, давайте поменяем. Меняем на миллиметры:

preferences.rulerUnits = Units.MM //сделать размер документа в единицах изрененияCM INCHES MM PERCENT POINTS PIXELS PICAS
preferences.typeUnits = TypeUnits.MM //задать для шрфиов единицу измерения - пиксели

Мы же не хотим сидеть около монитора и тыкать Enter? Мы хотим быстренько перекинуть все таски в баг-трекере на программиста! Давайте не дадим Photoshop’у возможность о чем либо сообщать и ждать нажатия ОК, делается это так:

displayDialogs = DialogModes.NO

Далее копирайты внутри файла. Мы должны добавить информацию о том, что файл сделан нами а не начальником. Добавим метаданные в File info.

docInfoRef = docRef.info
docInfoRef.copyrighted = CopyrightedType.COPYRIGHTEDWORK
docInfoRef.ownerUrl = "http://www.your-scorpion.ru"
docRef.info.author = "Your-scorpion"
docRef.info.country = "Russia"

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

Итоговый работающий код:

#target photoshop//только для Photoshop
// 2013. Используете на свой страх и риск.
 
var docRef = app.documents.add(297, 210, 300, "A4_gorizontal", NewDocumentMode.LAB, DocumentFill.BACKGROUNDCOLOR, 1)
var layerRef = app.activeDocument.artLayers.add()
//layerRef.name = "MyBlendLayer"//создает слой на текущем документе
layerRef.blendMode = BlendMode.NORMAL  //а этот набор команд создаст слой с именем MyBlendLayer и редимом наложения normal
 
docInfoRef = docRef.info
docInfoRef.copyrighted = CopyrightedType.COPYRIGHTEDWORK
docInfoRef.ownerUrl = "http://www.your-scorpion.ru"
docRef.info.author = "Your-scorpion"
docRef.info.country = "Russia"
preferences.rulerUnits = Units.MM //сделать размер документа в единицах изрененияCM INCHES MM PERCENT POINTS PIXELS PICAS
preferences.typeUnits = TypeUnits.MM //задать для шрфиов единицу измерения - пиксели
displayDialogs = DialogModes.NO  //позволит отключить диалоги с разными подтверждениями
 
var strokeColor = new SolidColor();
        strokeColor.cmyk.cyan = 0;
        strokeColor.cmyk.magenta = 100;
        strokeColor.cmyk.yellow = 100;
        strokeColor.cmyk.black = 0;
 
 var selRef = app.activeDocument.selection.fill(strokeColor)  
var textColor = new SolidColor;
textColor.cmyk.cyan = 0;
textColor.cmyk.magenta = 0;
textColor.cmyk.yellow = 100;
textColor.cmyk.black = 0;
 
var newTextLayer = docRef.artLayers.add();
newTextLayer.kind = LayerKind.TEXT;
newTextLayer.textItem.contents = "Letters Typography";
newTextLayer.textItem.position = Array(12.75, 47.75);
newTextLayer.textItem.size = 155;
newTextLayer.textItem.font =  "Helvetica";
newTextLayer.textItem.color = textColor;
docRef = null;
textColor = null;
newTextLayer = null;
 
main()
 
function main() 
{ 
if (documents.length==2480) 
{ //если нет открытых документов, то
alert ("Это другой проект, его я не трогаю(", "Error"); //вот так выводятся всякие алерты
} else { 
var doc = activeDocument; 
if (doc.width > doc.height)
{  
app.doAction('Medium Sharping','2013'); 
app.doAction('Correct Highlights','2013'); 
} else { 
app.doAction('Super Sharp','2013'); 
app.doAction('Color neynral','2013'); 
}
}
}

Если подытожить, то мы получили скрипт, который в зависимости от условий применяет те или иные экшены. А также, научились создавать документы и применять основные действия на JS. В общем то, для решения поставленной задачи вышеописанной техники достаточно. Примерно такое решение, сделанное как плагин, я отдавал подчиненным. Результат:

64747

Небольшая жизненная мудрость: мы можем записать действия пользователя в файл скрипта.
1. Берем файл «ScriptListener.8li» с сайта Adobe и закидываем в %ProgramFiles%AdobeAdobe Photoshop CS5Plug-insAutomate
2. Запускаем Photoshop
3. Делаем необходимые действия.
4. На рабочем столе забираем файлики ScriptListener.jsx и ScriptListener.vbs
5. (!)Удаляем ScriptListener.8li!
И мы получаем работающий говно-код, который никому нельзя показывать, но можно использовать в своих технических интересах.

И последнее. Чтобы скрипт заработал, нужно набрать текст скрипта в ExtendScript Toolkit и сохранить как <имя файла>.jsx. Затем в Photoshop перейти в меню File->Scripts->Browse и выбрать файл скрипта.
Думаю, при упоминании моушн-дизайнеров в начале статьи многие задумались, раз среда программирования и язык одни и те же, то возможно ли на скриптах автоматизировать межпрограммные действия? Да, это возможно. Также, с помощью скриптов вы также можете убрать надоедливые окна подтверждения при различных действиях. И ещё много чего интересного. Но во всем нужно знать меру, не нужно изобретать велосипед. Для автоматизации некоторых действий иногда будет лучше использовать Data Merge в inDesign, Print Merge в Corel, HTML+CSS+PHP. Но фотообработку и работу с графикой лучше Photoshop ничто не сделает.

Следующим этапом автоматизации работы в Photoshop является создание своих панелей (Adobe Configurator). Вы можете добавить в свою панель экшены и скрипты, повесить на них горячие клавиши. Важный нюанс: панели работают только при открытом документе. Все фотошопы версии CC поддерживают панели, написанные на HTML & CSS & JQUERY.

Если вам нужно уменьшить размер файла, то можно удалить мета-данные. Которые иногда весят больше, чем сам файл. Вот скрипт:

function deleteDocumentAncestorsMetadata() {
    whatApp = String(app.name);
    if(whatApp.search("Photoshop") &gt; 0)  {
        if(!documents.length) {
        alert("There are no open documents. Please open a file to run this script.")
        return;
        }
        if (ExternalObject.AdobeXMPScript == undefined) ExternalObject.AdobeXMPScript = new ExternalObject("lib:AdobeXMPScript");
        var xmp = new XMPMeta( activeDocument.xmpMetadata.rawData);
            xmp.deleteProperty(XMPConst.NS_PHOTOSHOP, "DocumentAncestors");
            app.activeDocument.xmpMetadata.rawData = xmp.serialize();
         }
}
deleteDocumentAncestorsMetadata();

Либо попробуйте оригинальный скрипт для удаления история работы над SmartObject.

Скрипты не только экономят ваше время, но и не дают вам совершить ошибку с названиями, параметрами и прочими важными вещами. Удачи!

Скрипты хранятся в папке Scripts в папке Preset приложения. Photoshop не предоставляет папку пользовательских скриптов.

Вы умеете писать скрипты для фотошопа?

Сценарий — это набор команд, которые сообщают Photoshop о выполнении одной или нескольких задач. Photoshop CS3 поддерживает сценарии, написанные на AppleScript, JavaScript или VBScript. Примеры сценариев включены в программу установки Photoshop CS3 и устанавливаются вместе с продуктом.

Как установить адоб скрипт?

Чтобы установить скрипты в Illustrator, разархивируйте загруженный файл в любимое место на компьютере. Перейдите к «Applications>Adobe Illustrator>Presets>en_US>Scripts» и вставьте сценарий (файл .jsx), предоставленный внутри zip-файла, в папку Scripts.

Установите расширение с помощью установщика. jsx-файл

  1. Загрузите файлы расширения по ссылке в покупке и разархивируйте их.
  2. Запустите Photoshop (для пользователей Windows: щелкните правой кнопкой мыши значок PS, выберите «Запуск от имени администратора»).
  3. Перейдите в меню «Файл» > «Сценарии» > «Обзор…».
  4. Выберите установщик. …
  5. Следуй инструкциям.

Где размещать плагины Photoshop?

Вот простой способ установки плагинов Photoshop:

  1. Откройте Photoshop.
  2. Выберите «Изменить» в раскрывающемся меню и выберите «Настройки» > «Плагины».
  3. Установите флажок «Дополнительная папка плагинов», чтобы принимать новые файлы.
  4. Загрузите плагин или фильтр на рабочий стол.
  5. Откройте папку Program Files и выберите папку Photoshop.

Как создать сценарий действия в Photoshop?

Записать действие

  1. Откройте файл.
  2. На панели «Действия» нажмите кнопку «Создать новое действие» или выберите «Новое действие» в меню панели «Действия».
  3. Введите имя действия, выберите набор действий и установите дополнительные параметры: …
  4. Щелкните Начать запись. …
  5. Выполните операции и команды, которые вы хотите записать.

Можно ли автоматизировать фотошоп?

Автоматизация процесса позволит вам выполнить действия один раз, а затем Photoshop будет повторять процесс для каждого изображения. … Есть два ключевых компонента процесса автоматизации в Photoshop: действия и пакетная обработка.

Куда вы скрипты ставите?

Вы можете разместить любое количество скриптов в HTML-документе. Скрипты можно разместить в , или в раздел HTML-страницы или и то, и другое.

Как установить сценарии Adobe Bridge?

Как установить скрипты в Adobe Bridge

  1. Запустить мост.
  2. Откройте диалоговое окно настроек Bridge. …
  3. Нажмите кнопку «Показать мои сценарии запуска».
  4. Перетащите файлы в каталог Startup Scripts.
  5. Выйдите и перезапустите мост.

Что такое скрипт Adobe?

Сценарий — это набор команд, которые сообщают Illustrator о выполнении одной или нескольких задач. Adobe Illustrator CC 2017 поддерживает сценарии, написанные на AppleScript, JavaScript или VBScript. Примеры сценариев включены в программу установки Adobe Illustrator CC 2017 и устанавливаются вместе с продуктом.

Как установить Coolorus в Photoshop CC 2020?

Как установить Coolorus 2 на Win

  1. Убедитесь, что у вас Photoshop версии CS5/6 или CC2014.2.x и выше.
  2. Загрузите Coolorus 2 для Mac.
  3. Дважды щелкните файл Install Coolorus.dmg.
  4. Следуйте инструкциям на экране.
  5. Удачного охлаждения!

Как установить плагины в Photoshop CC 2020?

Как установить плагин Photoshop

  1. Загрузите плагин, который вы хотите использовать, на свой компьютер.
  2. Разархивируйте папку и переместите новый плагин в папку плагинов Photoshop или в другое место, которое вам легко запомнить.
  3. Если вы вносите изменения в папки Adobe, вам, вероятно, потребуется пароль администратора вашего компьютера.

15.04.2020

Как запустить файл JSX?

Поскольку файлы JSX используются в программах Adobe, вы можете открыть их с помощью Photoshop, InDesign и After Effects из пункта меню «Файл» > «Сценарии» > «Обзор». Сюда же эти программы импортируют файлы JS и JSXBIN.

Как добавить плагины в Photoshop 2020?

Откройте меню «Правка» в Windows или меню «Photoshop» на Mac, найдите его подменю «Настройки» и выберите «Плагины». Установите флажок «Дополнительная папка плагинов» и перейдите к местоположению вашего программного обеспечения.

Как добавить портрет в Photoshop?

В Photoshop выберите пункт меню «Правка» -> «Установки» -> «Плагины и рабочие диски». На следующем экране убедитесь, что установлен флажок «Дополнительная папка подключаемых модулей». Затем нажмите кнопку «Выбрать» и найдите папку, в которой были установлены ваши плагины Photoshop.

Где я могу получить Adobe Photoshop бесплатно?

Загрузите бесплатную пробную версию

Adobe предлагает бесплатную семидневную пробную версию последней версии Photoshop, которую вы можете запустить в любое время. Шаг 1. Перейдите на веб-сайт Adobe и выберите Бесплатная пробная версия, когда будете готовы начать. На данный момент Adobe предложит вам три различных варианта бесплатной пробной версии.

Здесь я буду вылкадывать простейшие действия со скриптами, в помощь изучающим возможности скриптов в #Photoshop. Это элементарные кирпичики из которых в последствии будут строиться сложные программы.
Внимание синтаксис!!!
Обращаю внимание на большие и маленькие буквы в тексте скриптов — это важно. Например не правильное написание activeDocument.АctiveLayer=… приведет к не работоспособности скрипта без сообщения об ошибке, правильная запись — activeDocument.activeLayer=… отличается только заглавной буквой — будьте внимательны к синтаксису #скриптов. Всего одна буква — большая разница.


Основные настройки документа.

preferences.rulerUnits = Units.MM;           //сделать размер документа в единицах изренения
preferences.typeUnits = TypeUnits.MM;     //задать для шрфиов единицу измерения

в примере еденицы измерения в миллиметрах — MM.
все возможные значения: CM INCHES MM PERCENT POINTS PIXELS PICAS


Функция определение битности документа.

function GetDocumentBitsPerChannel(){
var Bits =0;
if (app.activeDocument.bitsPerChannel == BitsPerChannelType.ONE) Bits = 1;

if (app.activeDocument.bitsPerChannel == BitsPerChannelType.EIGHT) Bits = 8;
if (app.activeDocument.bitsPerChannel == BitsPerChannelType.SIXTEEN) Bits = 16;
if (app.activeDocument.bitsPerChannel == BitsPerChannelType.THIRTYTWO) Bits = 32;
return Bits;
}

alert(‘ битность документа — ‘ +  GetDocumentBitsPerChannel() + ‘ бит ‘);

Функция GetDocumentBitsPerChannel() возвращает значения битности документа.


Определить есть ли открытый документ.

if (app.documents.length == 0)      {
alert(«
нет открытого документа«)
}
else      {
alert («
Выполнение основного кода«)
}


Окно ввода значений

var myInput = prompt(«Введите значение:«, «Значение по умолчанию«);
alert(«
Введено значение » + myInput);

Окно для ввода значения переменной


Определение есть ли активное выделение в документе.

var GetSelect = 1;
try {var forgetIt = app.activeDocument.selection.bounds}
catch (a) {GetSelect = 0};
if (GetSelect==0 )  {
alert («
Выделения нет«);
}
else  {
alert («
Выделение есть«);
}


Окно сообщения с подтверждением действия ДА НЕТ.

var myResult = confirm(«Документ не сохранен. Сохранить его сейчас?«)
if (myResult == true) {
alert(«нажато ДА«)
}
else  {
alert(«
Нажато НЕТ«)
}


Выбрать слой по имени слоя

activeDocument.activeLayer = activeDocument.artLayers.getByName(«имя слоя«);


Добавить выбор слоя по имени, к активному слою
если нужно выбрать сразу два слоя, нужно один слоя сделать активным — текст скрипта выше
добавление к выбранному осуществляется следующим кодом:

var D01 = new ActionDescriptor();
var R01 = new ActionReference();
R01.putName( 1283027488, «имя слоя» );
D01.putReference( 1853189228, R01 );
D01.putEnumerated( stringIDToTypeID( «selectionModifier» ), stringIDToTypeID( «selectionModifierType» ), stringIDToTypeID( «addToSelection» ) );
executeAction( 1936483188, D01, DialogModes.NO );


Получить размеры и положения слоя
будем получать всю информацию о размерах и положению активного слоя:

var bounds = activeDocument.activeLayer.bounds;
alert(«Х верхнего левого угла — «+bounds[0]+» Y верхнего левого угла — «+bounds[1]+»       Х нижнего правого угла — «+bounds[2]+» Y нижнего правого угла — «+bounds[3]);

bounds[0] — координата Х верхнего левого угла
bounds[1] — координата Y верхнего левого угла
bounds[2] — координата Х нижнего правого угла
bounds[3] — координата Y нижнего правого угла

получим размеры слоя:

var bounds = activeDocument.activeLayer.bounds;
var width = bounds[2].value — bounds[0].value;
var height = bounds[3].value — bounds[1].value;
var middleX = bounds[0].value + ( bounds[2].value — bounds[0].value )/2;
var middleY = bounds[1].value + ( bounds[3].value — bounds[1].value )/2;

в переменную width — передали ширину слоя
в переменную height — передали высоту слоя
в переменную
middleX — передали координату X центра
в переменную
middleY — передали координату Y центра


Определить размер слоя.

var bounds = activeDocument.activeLayer.bounds;
var width = bounds[2].value — bounds[0].value;
var height = bounds[3].value — bounds[1].value;
alert(«
Ширина слоя «+width +» высота слоя «+height);

значения ширины и высоты находятся в переменных width и height соответственно


Изменение размера активного слоя в процентах.
Размер документа не изменяется.

activeDocument.activeLayer.resize(newSize, newSize, AnchorPosition.MIDDLECENTER);

описание параметров (newSizeW, newSizeH, AnchorPosition.MIDDLECENTER)

  • newSizeW — изменение ширины в %
  • newSizeH — изменение высоты в %
  • AnchorPosition.MIDDLECENTER — точка от которой происходит изменение размера

возможные значения AnchorPosition:

  • BOTTOMLEFT        нижний левый угол
  • BOTTOMRIGHT      нижний правый угол
  • MIDDLECENTER    центр
  • MIDDLELEFT          середина левой стороны
  • MIDDLERIGHT        середина правой стороны
  • TOPCENTER          середина сверху
  • TOPLEFT                верхний левый угол
  • TOPRIGHT              верхний правый угол

Пропорциональное изменение размера активного слоя.
Изменение по ширине слоя:

var newWidth = требуемое значение по ширине;
var bounds = activeDocument.activeLayer.bounds;
var width = bounds[2].value — bounds[0].value;
//получили текущую ширину слоя
var newSize = ((100 / width)*newWidth);
activeDocument.activeLayer.resize(newSize, newSize, AnchorPosition.MIDDLECENTER);

Изменение по высоте слоя:

var newHeight = требуемое значение по высоте;
var bounds = activeDocument.activeLayer.bounds;
var height = bounds[3].value — bounds[1].value;
//получили текущую высоту слоя
var newSize = ((100 / height)*newHeight);
activeDocument.activeLayer.resize(newSize, newSize, AnchorPosition.MIDDLECENTER);


Если мы занимаемся веб-дизайном, то нам часто приходится иметь дело с сеткой, особенно если мы делаем адаптивный дизайн. В этом уроке, мы рассмотрим скрипт для Photoshop, который генерирует пользовательскую сетку, и более того мы заглянем под капот и разберем, как создать такой скрипт.

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

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


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

  • Использование переменных для обращения к активному документу.
  • Использование вызова Prompt для входных данных от пользователя.
  • Number() — функция для проверки, правильности входных данных (что это число).
  • Метод Guides.add() для добавления направляющих в документ.
  • Использование цикла  «for» для повторяющихся действий.
  • Использование условного оператора «if» для запуска или прерывания программы.
  • Разберем как менять единицы измерения в документе.

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


Шаг 1: Загрузка и установка

Скрипт совместим с Photoshop CS5 и выше. Вы можете загрузить скрипт по ссылке «Download: Source code» или вы можете загрузить последнюю версию скрипта на моем веб-сайте. После того, как вы загрузите скрипт (.jsx файл), скопируйте его в директорию [Photoshop root]PresetsScripts.

Теперь он вам будет доступен через меню в  Photoshop, для этого зайдите в File > Scripts, как показано на рисунке ниже.


Шаг 2: Как Запустить Скрипт

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

Я использую 960рх по умолчанию, поэтому если вы не будете задавать другого значения, то останется 960рх.  Вы можете задать другую ширину, но лучше, если это будет четное число. Если вы зададите нечетное число, например 955, то в результате работы скрипта, получаться дробные числа.  Это значит, что это будет число с десятичной точкой, и тогда в расположении направляющей линии возникает неопределенность. Даже если мы округляем дробное число, мы не получим 100% точного расположения для наших направляющих.


Шаг 3: Количество Колонок

После того, как вы нажмете ввод, для первого запроса (или нажмите Ок, после того, как зададите ширину макета), появится следующий вопрос, который спросит у вас ввести количество колонок, которое будет у вас в макете. По умолчанию я сделал 12 колонок.


Шаг 4: Использование полей и межколоночного расстояния

И наконец, в третьем окне-запросе необходимо ввести размер полей (расстояние между границами и внешней стороной колонок). Эта величина удваивается, и получается межколоночное расстояние, как это делается в системе сеток 960.


Шаг 5: Использование Результатов

После того как вы введете данные во все три окна вы увидите , что вашем документе появились направляющие в виде колонок.  Вы не увидите направляющих линий, если они у вас отключены. Вы можете сделать их видимыми, если зайдете в View > Show > Guides (Ctrl+;).

На изображении выше, вы можете увидеть колонки, поля и межколоночное пространство. Цвета используются для того, чтобы показать, что есть что. Красным — обозначены колонки; белое — это межколоночное пространство, зеленый цвет для полей. У вас не будет всех этих цветов, только направляющие, как на следующей картинке.


Теперь вы знаете, как использовать скрипт, теперь давайте разберемся, как его создать, используя JavaScript!


Шаг 1: Проверка документа

Прежде чем запускать работу скрипта, на нужно убедиться, что в Photoshop открыт активный документ. Мы проверим это используя следующее условие:

 if ( app.documents.length != 0 ) 
 { 
 
 //Our entire code will go here 
 
 } else { 
 
 //No active document exists
 
 }

Мы пишем наш код, после фигурной скобки и должны закончит его, тоже фигурной скобкой, как вы видите выше.


Шаг 2: Конвертация единиц

Наша первая задача, сделать, чтобы единицами измерения в документе Photoshop были пиксели, потому что мы хотим чтобы наш дизайн был pixel perfect!

//This shall set  measuring units of document to Pixels.
  preferences.rulerUnits  = Units.PIXELS;

Шаг 3: Задаем Ширину Документа

Далее мы задаем размеры документа в Photoshop.

var doc = app.activeDocument; //save reference of active document to variable "doc" for easy typing later on
  var docWidth = doc.width; //gets the width of the document
and stores it in "docWidth"

Система сеток не зависит от высоты документа, поэтому мы ее здесь не учитываем.


Шаг 4: Вычисления горизонтального центра

Теперь нам нужно найти горизонтальный центр документа, или его ширина. Как это Сделать? Просто поделить документ на две части.

var docXcenter = docWidth / 2 ;

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


Шаг 5: Пользовательские Назначения

Теперь мы должны спросить пользователя, какую ширину макета он будет использовать, сколько будет колонок и какие поля между ними.

Например в сетках -960, используются следующие комбинации:

  • Ширина макета : 960px
  • 1й вариант: 12 колонок : 10px наружные поля : 20px межколоночное пространство
  • 2й вариант: 16 колонок : 10px наружные поля : 20px межколоночное пространство
  • 3й вариант: 24 колоноки : 5px наружные поля : 10px межколоночное пространство

Мы получим хорошие варианты, если будем использовать одну из этих комбинаций (выберем первую) по умолчанию.

// Get layout width from user. Default  to 960px.
var layoutWidth = Number ( prompt ( 'Enter layout width:' , 960 ) ) ;
 // This gets number of columns from user. Most appropriately 12,16, or 24. Default 12 columns. 
  var cols = Number ( prompt ( 'Enter numbers of columns:' , 12 ) );
// Gets margins from left right from user. Which will  later be doubled to get gutter. Default 10px
  var margin = Number ( prompt ( 'Enter space between columns:' , 10 ) );

Что такое Окно- Prompt()?

Ок, прежде чем мы пойдем дальше, давайте взглянем, что из себя представляет команда и окно «prompt».

prompt ("Message to user here", "Default value here");

Окно Prompt показывает диалоговое обращение к пользователю и дает возможность ввести значение, как вы можете видеть ниже:

Пользователь вводит требуемую величину, которую окно-prompt возвращает.

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

prompt("Enter number of columns. Appropriate values are 12, 16, 24.", 12);

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

А что На Счет Number( )?

Number  — это функция, которая позволяет нам получить число, из окна ввода. Если пользователь введет что-то отличное от числа (имя, например, или другую строку), тогда этот функция вернет NaN (Not a Number).  Эти меры безопасности, позволяют нам быть уверенными, что мы будем работать с числом, что важно для нашей ситуации. 


Теперь давайте разберемся с кодом, который мы написали чуть раньше.

Первая строчка, получает значение для ширины макета. Макет сайта будет лежать в этих пределах. Так как мы используем сетку 960, то величина по определению будет 960рх, но вы можете изменить это значение на любое, более предпочтительное для вас.

Во второй строчке, мы принимаем значения для числа колонок, которые пользователь хочет использовать в макете. В системе сеток 960 используются 12, 16 и 24 колонки, так как именно эти варианты наиболее эффективны, но они не обязательны.

И в третьей строке мы получаем информацию о пространстве между колонками и границах макета. Обычно это удвоенное расстояние образует межколоночное пространство.


Шаг 6: Вычисляем Межконолоночное Пространство и Центр

var gutter = space * 2; 
//Calculates the horizontal center of the layout and so the center of document 
  var layoutHalf = layoutWidth / 2 ;

Тут мы вычисляем межколоночное пространство и присваиваем значение переменной gutter. Во второй строчке, мы вычисляем середину макета, используя ширину, которую задал пользователь. Иными словами, вычисляем горизонтальный центр.


Шаг 7: Определяем Границы

В первой и второй строчках этой части нашего кода, мы вычисляем положение левой и правой границ нашего макета. Мы назовем их внешние границы (outer limits); левая граница — minLimitOuter, а правая граница — maxLimitOuter.

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

  //outer limits that is the layout width;
  var maxLimitOuter = docXcenter + layoutHalf;
var minLimitOuter = docXcenter - layoutHalf;

  //Inner limits for 960gs
  var minLimitInner = minLimitOuter + space;
  var maxLimitInner = maxLimitOuter - space;

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

Почему мы используем величину  layoutHalf? Это половина от ширины макета, заданной пользователем. Мы делим его пополам, чтобы мы могли разместить две половинки макета по разные стороны от docXcenter. Из этого мы можем определить положение направляющих на правом и левом краях макета.

Положение левой направляющей будет определяться как (Центр документа — половина ширины макета), а положение правой направляющей как (Центр документа + половина ширины макета).


Шаг 8: Ширина Колонок

Тут мы вычисляем ширину каждой колонки. Это значение понадобится позже, когда мы запустим процесс “добавления направляющих”.

 var colWidth = ( layoutWidth - ( cols * gutter ) ) / cols;

Шаг 9: Добавление направляющих для внешних границ

Наконец, мы подошли к нашему первому шагу по добавлению направляющих! Здесь мы добавляем две направляющих на границах макета; это наши внешние границы.

doc.guides.add ( Direction.VERTICAL , minLimitOuter );
doc.guides.add ( Direction.VERTICAL , maxLimitOuter );

В первой строчке мы добавляем вертикальную направляющую для нашего документа в положении minLimitOuter, — это слева, и в правой части макета — maxLimitOuter.

Позвольте мне объяснить подробнее последние строчки кода.

 doc.guides.add(Direction.VERTICAL/HORIZONTAL, position)

В этой строке добавляется направляющая в нашем Photoshop документе.»doc» — ссылается на наш активный документ.  «guides» это объект класса guides, который является элементом документа и отвечает за поведение и свойства направляющих в документе Photoshop. «add» — это метод класса guides, который позволяет добавить направляющую в наш документ.

doc.guides.add() это метод, которому требуется на входе два параметра. Первый — это направление для направляющей, она может быть вертикальной или горизонтальной. Второй параметр, это положение направляющей. Если у нас единицы измерения в пикселях, то предполагается, что положение задается в пикселях, или в других величинах при других единицах измерения.


Шаг 10: Первый Цикл

Первый цикл создает первую группу направляющих и внутренние границы:

  for ( i = 0 ; i < cols ; i++ ) {
  guidPos = minLimitInner + ( ( colWidth + gutter ) * i );
  if ( guidPos > maxLimitInner ) {
  break;
  }
  doc.guides.add ( Direction.VERTICAL , Number ( guidPos ) );
  }

Рассмотрим подробнее. Мы повторяем наш код col раз, так как это число колонок, которое задал пользователь. Также в этой части кода мы добавляем наши внутренние границы.

Первая строчка после «for» начинается с переменной «guidPos», которая используется для положения. Мы начинаем отсчет положений для направляющих от «minLimitInner»; внутренняя граница.  Далее мы умножаем colWidth и gutter на «i» , где i — принимает значения от 0 до «cols». Таким образом, мы получаем нашу первую группу направляющих. Эти направляющие будут расположены слева от каждой колонки.

Во второй строчке, мы проверяем, чтобы наша величина guidPos не превысила maxLimitInner; правая внутренняя граница документа. Если она ее превышает, то цикл прерывается. Если условие не выполняется, то цикл продолжается, пока не выполнится условие.

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


Шаг 11: Делаем Второй Цикл

Теперь  пришло время сделать вторую группу направляющих. 

for ( j = 0 ; j < cols ; j++ )
  {
if ( j == 0 ) 
{ multiply = 0
  }
  else
  {
  multiply = 1;
  }

temp_gutter = ( gutter * multiply ) ;
guidPos = ( minLimitOuter - space ) + ( ( colWidth + gutter ) * ( j + 1 ) );
 if ( guidPos > maxLimitInner ) 
{
  break;
  }  
doc.guides.add ( Direction.VERTICAL , Number ( guidPos ) );

При небольших изменениях в коде, мы добавляем направляющие с правой стороны колонок и с правой внутренней границы.

Вот как выглядит наш скрипт полностью:

if ( app.documents.length != 0 ) 
{ 
    preferences.rulerUnits = Units.PIXELS;
    var layoutWidth = Number ( prompt ( ' Enter layout width: ' , 960 ) );
    var cols = Number ( prompt ( ' Enter numbers of columns: ' , 12 ) );
    var space = Number ( prompt ( ' Enter space between columns: ' , 10 ) );
    
    var doc = app.activeDocument;
    var docWidth = doc.width;
    var docXcenter = docWidth / 2;
    
    
    var gutter = space * 2; //gutter space
    var layoutHalf = layoutWidth / 2;
    
    
    //outer limits that is the layout width;
    var maxLimitOuter = docXcenter + layoutHalf;
    var minLimitOuter = docXcenter - layoutHalf;
    
    
    //Inner limits for 960gs
    var minLimitInner = minLimitOuter + space;
    var maxLimitInner = maxLimitOuter - space;
    
    var colWidth = ( layoutWidth - ( cols * gutter ) ) / cols;
    
    
    doc.guides.add ( Direction.VERTICAL , minLimitOuter );
    doc.guides.add ( Direction.VERTICAL , maxLimitOuter );
    
    
    for ( i = 0 ; i < cols ; i++ )    
    {    
        guidPos = minLimitInner + ( ( colWidth + gutter ) * i );
        
        if ( guidPos > maxLimitInner )
        { 
            break;
        }
        
        doc.guides.add ( Direction.VERTICAL , Number ( guidPos ) );
    
    }
    
    
    
    for ( j = 0 ; j < cols ; j++ ) 
    {
        if ( j== 0 )
        {
            multiply = 0
        }
        
        else
        {
            multiply = 1;
        }
        
        temp_gutter = ( gutter * multiply );
        
        guidPos = ( minLimitOuter - space ) + ( ( colWidth + gutter ) * ( j + 1 ) );
        
        if ( guidPos > maxLimitInner ) 
        {
            break;
        }
        doc.guides.add ( Direction.VERTICAL , Number ( guidPos ) );
    }
     
    }// end-if app.documents.length
        
    else
    {
       alert ( " No active document exists " );
      }

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

Photoshop Scripting in Python

Scripting in Photoshop is used to automate repetitive tasks and are often used as a creative tool to streamline tasks that might be too
time consuming to do manually. For example, you could write a script to generate a number of localized
versions of a particular image or to gather information about the various color profiles used by a collection
of images.

Photoshop COM & DOM

Photoshop can be scripted through COM(Component Object Model). Its DOM(Document Object Model) is the same when accessing it through either its own JavaScript engine or Python or any other scripting language it supports. The Photoshop DOM consists of a hierarchical representation of the Photoshop application, the documents used in it, and the components of the documents. The DOM allows you to programmatically access and manipulate the document and its components. For example, through the DOM, you can create
a new document, add a layer to an existing document, or change the background color of a layer. Most of
the functionality available through the Photoshop user interface is available through the DOM.

But why Python?

Photoshop scripting officially supports JavaScript, AppleScript & VBScript. However, Scripting in Python is also fairly easy if not easier if you’re already comfortable with Python. You may have already heard that Python is gaining in popularity, but did you know it’s now the most popular introductory programming language in U.S. universities? Python is also cross platform just like JavaScript is and lately becoming one of the fastest growing programming language according to StackOverflow as of 2017 / as of 2019

Python is easy to use, powerful, and versatile, making it a great choice for beginners and experts alike. Python’s readability makes it a great first programming language — it allows you to think like a programmer and not waste time understanding the mysterious syntax that other programming languages can require.

Getting Started

Python allows you to access COM and it’s DOM with the help of a Python extensions like «pypiwin32» or «comtypes». Install these modules and you’re ready to start scripting Photoshop in Python

  • pip install pypiwin32 or pip install comtypes

Hello World!

from win32com.client import Dispatch

app = Dispatch("Photoshop.Application")
doc = app.Documents.Add(320, 240)
layerRef = doc.ArtLayers.Add()

psTextLayer = 2  # from enum PsLayerKind
layerRef.Kind = psTextLayer

textItem = layerRef.TextItem
textItem.Contents = "HELLO WORLD!"
textItem.Position = (120, 120)

How to inspect scripting object properties?

There’s not a straight forward way, you need to read the documentation to understand what properties/attributes are available for a scripting object, or possibly a COM browser. For example, I’ve extracted the Python scripting object reference for Photoshop CC 2018 at api_reference

GUI tool example

See gui_tool for an example of how you can use Photoshop Scripting to develop your own tool/utilities

Scripting on Mac?

Yes, scripting on Mac is also possible, see mac_scripting for more details

Photoshop Scripting Resources

  • Photoshop Scripting Documentation
  • Photoshop Scripting Developer Forum
  • Photoshop Scripting API Reference
  • Photoshop Scripting Tutorials

Also see

  • InDesign Scripting in Python
  • Illustrator Scripting in Python

Contribution

If you’ve written a useful Photoshop Python script and wants to share with the world, please create a new issue with the file as an attachment to the issue.

When you submit a script, please try to include the following information at the start of your script

# script_file_name.py

# Created: 1st January 2019
__author__ = 'Your Name or Original Author Name'
__version__ = '1.0'

"""
A short description of what the script does
"""

"""
Instructions on how to use the script, if any
"""
  • Go to photoshop-scripting-python/issues/new
  • Add title as Useful Script
  • Drag & drop your .py script file into the description area
  • Click Submit new issue

Понравилась статья? Поделить с друзьями:
  • Как написать скрипт для установки программ
  • Как написать скрипт для трейдингвью
  • Как написать скрипт для сайта на python
  • Как написать скрипт для роблокс студио
  • Как написать скрипт для отдела продаж