Как сделать скрипт в photoshop

Обновлено: 07.07.2024

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

в примере еденицы измерения в миллиметрах - 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 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 соответственно

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

Возможно, вы слышали о Действия Photoshop. Это простой способ автоматизации задач. Сегодня я покажу вам, как использовать Скрипты фотошопа. Сценарии Photoshop немного более эффективны, чем действия, и предоставляют вам возможность изменять поведение сценария во время выполнения — что-то, что действия не могут сделать!

Не беспокойтесь, если это звучит сложно: скрипты написаны на JavaScript

простой, но мощный язык.

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

Ваш первый сценарий: изменение размера изображений

При написании сценариев вы можете использовать ExtendScript Toolkit. Вам не нужно это использовать, вы можете использовать любой текстовый редактор, который вам нравится (мне нравится Sublime Text), но использование этого инструментария дает множество преимуществ. Самое большое преимущество в том, что вы можете установить контрольные точки, что позволяет очень легко отлаживать ваш код и выявлять любые ошибки.

расширенный инструментарий

Набор инструментов ExtendScript входит в вашу подписку Creative Cloud, так что продолжайте и установите его с вашего Приложение Creative Cloud или веб-сайт выше.

Откройте инструментарий после установки. Вам будет представлен этот довольно устаревший интерфейс:

интерфейс инструментария extendscript

Вот код для вашего первого скрипта — скопируйте и вставьте его в главное окно кода слева:

Давайте разберемся, что делает этот код. current_document Переменная хранит активный объект документа из Photoshop. Доступ к нему осуществляется с помощью app.activeDocument синтаксис. Если у вас не запущен Photoshop с открытым документом, этот код выдаст исключение. Исключением являются способы остановки выполнения кода — этот скрипт не может продолжаться, если нет документа!

new_width Переменная хранит ширину, которую вы хотели бы, чтобы ваш новый документ был.

Наконец, resizeImage Метод изменяет размер изображения. Это должно быть доступно через current_document переменная. Вам нужно передать новую ширину (преобразованную в пиксели через Стоимость единицы метод), а ResampleMethod из Bicubic.

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

  1. Ближайший сосед: Очень быстрый, но простой.
  2. Bilinear: Лучше, чем ближайший сосед, но медленнее и не так хорош, как Bicubic.
  3. Бикубическая: Очень хорошие результаты, но в вычислительном отношении дорого.
  4. Бикубическая гладкость: Улучшенная версия Bicubic для масштабирования (увеличения).
  5. Бикубический острее: Усовершенствованная версия Bicubic, предназначенная для понижающей дискретизации (делает ее меньше).

Не забывайте использовать их при использовании в своем коде.

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

В верхней части набора инструментов ExtendScript измените цель выпадающее меню (вверху слева) от ExtendScript Toolkit CC в Adobe Photoshop CC 2017 (или какой бы ни была ваша конкретная версия Photoshop). Если вы пишете сценарии для других приложений Adobe, вы можете изменить их на эти.

целевой набор инструментов extendscript

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

кнопка воспроизведения инструментария extendscript

Если все работает правильно, размер вашего документа теперь изменен (не забудьте сохранить его). Консоль JavaScript в правом верхнем углу вашего инструментария будет отображаться вывод вашего скрипта. Как нет выхода, это скажет Результат: не определено.

Результат консоли javascript

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

ошибки исполнения

Это может быть простая опечатка, поэтому после остановки скрипта (Верхнее правое управление > Кнопка Стоп), двойная проверка:

  • Ваш код верен и не содержит опечаток.
  • Фотошоп работает.
  • У вас есть документ, открытый в Photoshop.

Запуск скриптов

Теперь ваш код работает правильно, пришло время добавить его в Photoshop.

В вашем наборе инструментов перейдите к файл > Сохранить, и сохраните ваш сценарий в подходящем месте с подходящим именем. По умолчанию это будет Adobe Scripts папка. Обратите внимание, как сценарии должны заканчиваться в .JSX формат.

Внутри Photoshop, перейдите к файл > Сценарии > Диспетчер событий скрипта. Поставить галочку Включить события для запуска сценариев / действий.

менеджер сценариев событий

После включения этот интерфейс позволяет настраивать существующие сценарии для запуска при выполнении определенных действий. Есть несколько ключевых областей:

  1. Фотошоп Событие: Это когда скрипт будет запущен. Вы можете выбрать один из множества вариантов, таких как печать, открытие нового документа и многое другое.
  2. Автор сценария: Это скрипт для запуска. Есть несколько основных встроенных, но вы также можете назначить один из ваших собственных скриптов здесь.
  3. Действие: Если вы не используете сценарий, вы можете выбрать вместо него основное действие, например сохранить в PDF.

Выбрать скрипт, а затем выберите Просматривать. Выберите свой сценарий. Идите вперед и выберите событие, которое запустит ваш сценарий.

После настройки нажмите добавлять а потом Готово. В этом меню также можно редактировать или удалять любые ранее настроенные сценарии.

Если вы хотите увидеть свой скрипт в этом меню скриптов, то вам нужно скопировать его в соответствующую папку. Это можно найти в Пресеты > Сценарии папка вашей установки Photoshop.

После копирования перезапустите Photoshop. После перезапуска ваш скрипт будет виден как пункт меню в файл > Сценарии Меню.

пункт меню скрипта

Изменить размер изображения: сделать его лучше

Теперь, когда у вас есть понимание скриптов Photoshop, пришло время улучшить код.

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

Давайте изменим код так, чтобы любые изображения, меньшие, чем новый размер, не были изменены. Вот код:

Здесь есть только одно изменение. если Оператор обернут вокруг метода изменения размера. Если текущая ширина документа (доступ через current_document.width) меньше новой ширины, не меняйте размер.

Это гарантирует, что маленькие изображения не будут увеличены, что снизит качество.

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

предложение кода инструментария

Вот одно последнее изменение:

Этот код теперь содержит комментарии, то, что должен иметь весь код

и который поможет вам в будущем.

Метод повторной выборки изменен на Бикубический Острый — это дает немного лучшие результаты при уменьшении масштаба изображений.

Наконец, контраст и резкость были применены в качестве последнего шага.

Что вы будете кодировать?

К настоящему времени вы должны знать все, что вам нужно для автоматизации чего-либо в Photoshop! Если вы можете сделать это в Photoshop, вы можете автоматизировать это. API Photoshop

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

Конечно, сегодняшние примеры были только базовыми, но они охватывают основные детали — вы можете реализовать скрипт, соответствующий вашим требованиям!

Вы узнали что-нибудь новое сегодня? Какие твои любимые сценарии? Дайте нам знать в комментариях ниже!

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

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

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

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

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

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

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

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




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

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




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

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

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




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

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




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

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




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




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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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




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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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







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

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

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

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

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

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

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

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

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

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

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

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




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

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


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

Скрипты можно сделать самостоятельно или скачать внешние готовые элементы.

Наша подборка состоит из двух частей: первая часть с бесплатными сценариями и вторая – скрипты premium на платформе Envato, которые можно приобрести за пару условных единиц. Для профессиональных мастеров Photoshop это небольшая инвестиция, чтобы выиграть время в платных проектах. В большинстве указанных ресурсов подборки вы найдете объяснения об их использовании и установке.

Желаем увлекательного творческого процесса и создания уникальных шедевров!

Сейчас на странице 0 пользователей

Нет пользователей, просматривающих эту страницу.

Похожие публикации

PavelK

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

Кстати, можно сделать его быстрый запуск из панели "Операции" или по нажатию горячей клавиши:

PavelK

Приветствую!
Часто ли Вам приходится подготавливать номерки, либо что-то другое, где требуется порядковая нумерация?
Лично мне не так уж часто, но вручную вводить номера хотя бы для 100 номерков достаточно утомительно.
Поэтому мной был сделан скрипт NumbersDistribution для Adobe Illustrator, который позволяет этот процесс автоматизировать.
Видео работы:

Кстати, можно сделать его быстрый запуск из панели "Операции" или по нажатию горячей клавиши

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

Andrey171080

Здравствуйте. Такая задача. Есть множество изделий крупных и не очень разложенных на лист фанеры впритык. Как можно набросать ещё мелочёвки всякой между ними? Я понимаю что это можно сделать вручную в кореле, но есть ли какая прога которая делала бы это автоматом?

Читайте также: