Скрипт для фотошопа наподобие хавера

Обновлено: 21.11.2024

Unified Text Engine заменяет устаревшие текстовые механизмы и обеспечивает расширенные типографские функции для международных языков и шрифтов по всему миру, включая арабский, иврит, индийские шрифты, японский, китайский и корейский языки.

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

Ключевые улучшения включают:

  • Улучшено форматирование текста с помощью механизма формирования текста HarfBuzz с открытым исходным кодом для арабского, иврита, китайского, японского, корейского и всех нелатинских алфавитов.
  • Улучшена поддержка двунаправленного текста с помощью FriBidi.
  • Объединенные расширенные функции типографики для арабского и японского языков теперь дополнительно расположены на панели свойств текстового слоя.
  • Переключение пользовательского интерфейса текстового движка в меню Photoshop > «Настройки» > «Тип» удалено. Слои New Type будут поддерживать все скрипты и языки по умолчанию. Пользователи могут вручную переключать компоновщика устаревшего текстового движка с помощью всплывающего меню панели «Абзац» при открытии документа Photoshop устаревшего текстового движка.
  • Расширенные типографские функции Ближнего Востока и Восточной Азии всегда доступны на панели свойств текстового слоя.
  • В отличие от предыдущих версий Photoshop, атрибут направления абзаца по умолчанию справа налево включается только в том случае, если язык пользовательского интерфейса установлен на: «Английский: включен арабский», «Английский: включен иврит» или «Французский: Северная Африка». ".
  • Photoshop больше не поддерживает шрифты Type 1 и арабские шрифты Axt. Если устаревший документ Photoshop открыт со шрифтами Type 1, Photoshop будет рассматривать их как отсутствующие шрифты.

Поддержка шрифтов Type 1 прекращена с выпуском Photoshop 23.0

Photoshop 23.0 больше не поддерживает шрифты PostScript Type 1. Мы обновили, модернизировали и объединили наш текстовый движок с формирователем скриптов Harfbuzz для поддержки всех скриптов.

Шрифты Type 1 (также известные как PostScript, PS1, T1, Adobe Type 1, Multiple Master или MM) — это формат шрифтовой индустрии, замененный более крупными наборами глифов. Эти шрифты не поддерживаются в большинстве браузеров и в большинстве операционных систем, и Adobe продвигается вперед, предлагая поддержку и более надежные технические возможности шрифтов формата OpenType.

Photoshop 23.0 и более поздние версии не распознают шрифты Type 1, даже если они установлены в вашей настольной операционной системе:

  1. Шрифты Type 1 не отображаются в меню шрифтов Photoshop.
  2. Ранее установленные шрифты Type 1 больше не будут работать в файлах Photoshop.
  3. При открытии файлов Photoshop с существующими шрифтами Type 1 шрифты Type 1 будут рассматриваться как отсутствующие в документе.

Если нужный вам шрифт еще не доступен в библиотеке Adobe Fonts, вы можете получить поддерживаемые шрифты, принадлежащие Adobe, у нашего партнера fontspring.

Клиенты, которые приобрели шрифты Type 1, не принадлежащие Adobe, могут обратиться к производителю шрифтов, опубликовавшему шрифт(ы), чтобы узнать о возможности обновления до формата OpenType.

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

Помимо латиницы, компоновщик Unified Text Engine поддерживает следующие языки и сценарии:

Вы знаете об экшенах Photoshop, но скрипты могут делать гораздо больше. Мы выбрали 15 лучших.

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

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

На самом деле, многие функции, которые вы уже используете в Photoshop, на самом деле являются сценариями. Возьмем, к примеру, функцию обработки изображений («Файл» > «Сценарии»), которая позволяет быстро преобразовать целую папку изображений из одного формата в другой. другой, изменяя размер по ходу дела и добавляя метаданные.

Итак, помня обо всем этом, ознакомьтесь с нашей подборкой лучших сценариев для добавления функциональности в Photoshop и сообщите нам, если вы нашли какие-либо полезные сценарии, которые мы не упомянули в разделе комментариев!

01. Угловой редактор

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

02. Черно-белые варианты

Этот скрипт от Тревора Морриса преобразует и сохраняет изображение в черно-белое, используя 20 различных подходов. После сохранения 20 вариантов их можно автоматически открыть в Photoshop для сравнения. Кроме того, вы можете добавлять свои собственные варианты, чтобы расширить возможности сравнения.

03. Разделить на слои

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

04. Панель Adobe Paper Texture

Рассел Браун предлагает широкий выбор скриптов и расширений на своем веб-сайте, как и следовало ожидать от одного из представителей Adobe. Этот конкретный скрипт позволяет вам быстро получить текстуру для использования в вашем открытом документе.

05. Удалить копию

Этот очень полезный скрипт от Майка Хейла позволяет удалить слово «копия» из имени дублированного слоя в Photoshop. Удаление может применяться одновременно к нескольким слоям или только к текущему активному слою.

06. Создайте календарь

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

07. Стек-а-Матик

Еще один сценарий Рассела Брауна, позволяющий объединить несколько экспозиций в одно завершенное изображение. Он идеально подходит для астрофотографии, когда необходимо экстраполировать детали из нескольких снимков, а не из одного.

08. Генератор спрайтов

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

Следующая страница: больше бесплатных скриптов Photoshop, экономящих время.

Текущая страница: Страница 1

Сэм — дизайнер и иллюстратор из Шотландии. Он делит свое время между искусством и дизайном, анимацией и видео, а также написанием текстов для различных творческих проектов.

Краткий обзор ↬ Автоматизация полезна в работе каждого дизайнера. Это экономит драгоценное время на повторяющихся задачах и помогает нам решать определенные проблемы быстрее и проще.

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

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

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

Но сначала мы должны ответить на очевидный вопрос.

Познакомьтесь с Smashing Email Newsletter с полезными советами по пользовательскому интерфейсу, дизайну и пользовательскому опыту. Подпишитесь и получите «Контрольные списки Smart Interface Design» — бесплатную подборку в формате PDF с более чем 150 вопросами, которые вы можете задать себе при проектировании и создании практически всего.

Раз в неделю. Полезные советы по интерфейсу и UX. Нам доверяют 190 000 человек.

Зачем нужны скрипты?

Зачем нам учиться писать скрипты, если в Photoshop уже есть неплохие экшены? Ответ — интерактивность. Когда вы используете действие, вы не можете контролировать его поведение в различных ситуациях; это похоже на видеокассету, которая воспроизводится снова и снова без каких-либо изменений.

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

Требования

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

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

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

Начало работы

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

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

  1. Откройте изображение → Размер изображения.
  2. Введите 150 % по ширине и высоте.
  3. Нажмите "ОК".

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

  1. Вызовите приложение: app
  2. Нацелить документ: activeDocument
  3. Вызовите функцию для изменения размера изображения: resizeImage(width, height)

И код будет выглядеть так:

Язык

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

Инструменты

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

Набор инструментов поставляется с Photoshop и находится в следующей папке:

  • Mac OS X /Applications/Utilities/Adobe Utilities CS6/ExtendScript Toolkit CS6/
  • Windows C:Program FilesAdobeAdobe Utilities — CS6ExtendScript Toolkit CS6 (или Program Files (x86) для 64-разрядных машин)

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

Теперь вы можете написать что-то вроде этого:

Нажмите cmd + R (или просто нажмите кнопку «Воспроизвести» на панели инструментов), чтобы запустить скрипт. ExtendedScript Toolkit должен переключиться на Photoshop и отобразить окно с предупреждением:

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

Вы можете использовать любой текстовый редактор для написания сценария; просто сохраните его как файл .jsx. Чтобы запустить его, вам нужно перейти в «Файл» → «Сценарии» → «Обзор» в Photoshop и выбрать его. Или просто откройте файл сценария в Photoshop. Вы также можете добавить строку кода вверху скрипта, чтобы файл всегда открывался в Photoshop:

Сохраните свои сценарии в каталоге Photoshop/Presets/Scripts/ и откройте их, выбрав Файл → Сценарии. Вы также можете настроить горячую клавишу; просто перейдите в «Правка» → «Сочетания клавиш» , перейдите в «Файл» → «Сценарии» → [имя вашего сценария] и установите нужное сочетание клавиш.

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

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

Чтобы упростить написание сценариев, вы должны понимать, как вещи связаны друг с другом в объектной модели документа Photoshop (DOM). Разобраться в этом не так сложно, если посмотреть на сам Photoshop. Основным объектом в DOM Photoshop является приложение. В приложении у нас есть коллекция документов, открытых в данный момент в Photoshop.

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

Ниже представлена ​​упрощенная визуализация DOM Photoshop. Более подробную иерархию сдерживания можно найти на странице 12 «Руководства по созданию сценариев Adobe Photoshop CS6» (PDF).

У каждого из этих объектов есть свои свойства и методы, с которыми вы можете работать. Например, чтобы изменить непрозрачность выбранного слоя в документе, вы должны перейти в «Приложение» → «Документ» → «Слой» → «Непрозрачность» и установить нужное значение. Код будет выглядеть так:

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

Описания большинства объектов, их свойств и методов можно найти в «Справочнике по сценариям JavaScript для Adobe Photoshop CS6» (PDF) или в наборе инструментов ExtendedScript, выбрав «Справка» → «Средство просмотра объектной модели» .

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

Обновление действия RotateMe в виде скрипта

Несколько лет назад на Рождество у меня возникла идея нарисовать снежинки.

Рисуем снежинку 101

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

  1. Дублируйте основу.
  2. Поверните его на любое количество градусов, которое вы выбрали, используя инструмент "Трансформация".
  3. Дублируйте слой.
  4. Используйте функцию "Повторить преобразование".
  5. Повторяйте шаги 4 и 5, пока не получите полный круг.

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

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

Сегодня мы переделаем это действие в виде динамического скрипта, который принимает ваши данные о количестве стеблей. Начнем!

Алгоритм

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

  1. Попросите пользователя ввести количество стеблей.
  2. Рассчитать угол поворота.
  3. Продублируйте и поверните слой на число, указанное в первом шаге.

Начнем с сохранения текущего или выбранного слоя в переменную для дальнейшего использования:

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

Теперь перейдем к нашему алгоритму.

1. Запросить ввод данных у пользователя

Мы можем получить ввод от пользователя с помощью функции приглашения(сообщение, значение по умолчанию[, заголовок]). Эта функция показывает диалоговое окно с сообщением и полем ввода, которое содержит значение по умолчанию. Когда пользователь нажимает «ОК», функция возвращает введенное значение; поэтому мы должны сохранить его в переменной, чтобы иметь возможность использовать его.

Обратите внимание, что я использовал в сообщении originalStem.name, поэтому в диалоговом окне будет отображаться имя выбранного слоя.

В Mac OS X первая строка сообщения выделена жирным шрифтом и служит заголовком. Итак, наше основное сообщение должно быть на второй строке. Чтобы создать новую строку, введите n .

В Windows вы можете указать третий аргумент в функции для установки заголовка:

Если мы запустим код в Photoshop, появится следующее диалоговое окно:

Когда пользователь нажмет "ОК", введенное значение будет сохранено в переменной StemsAmount. Если пользователь нажмет «Отмена», функция вернет нулевое значение. Мы воспользуемся этим позже.

2. Вычислить угол поворота

Чтобы рассчитать угол поворота, нужно разделить 360 градусов (полный круг) на количество стеблей:

3. Дублировать и вращать

Теперь у нас есть все необходимое для создания дубликатов нашего стебля. Для этого воспользуемся циклом for. Это позволяет нам многократно запускать строки кода столько раз, сколько мы хотим. Наш цикл будет выглядеть так:

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

Чтобы дублировать и поворачивать наш слой, мы будем использовать методы дублирования() и rotate(angle, AnchorPosition): количество слоев, которые нужно повернуть под углом, умножается на проиндексированное количество дубликатов. AnchorPosition определяет точку, вокруг которой будет вращаться слой. Вы можете увидеть эту точку, когда используете инструмент «Трансформация» в Photoshop — она выглядит как маленький кружок с перекрестием. В сценариях он имеет только 9 заданных значений, то есть 9 позиций точки привязки:

В нашем случае это нижний центр слоя, BOTTOMCENTER. Photoshop использует множество других констант здесь и там в некоторых функциях, которые вы можете найти на странице 197 «Справочника по Adobe Photoshop CS6 JavaScript» (PDF).

Итак, наш цикл будет выглядеть так:

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

Последние штрихи

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

Последние штрихи

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

Кроме того, чтобы Photoshop не сошел с ума, мы ограничим количество стеблей — скажем, до 100. Для этого мы будем использовать цикл while, чтобы показать пользователю сообщение об ошибке в случае недопустимой отправки. , и окно подсказки будет отображаться до тех пор, пока пользователь не введет допустимое значение или не нажмет кнопку "Отмена" (помните, что подсказка возвращает значение null, если пользователь нажимает "Отмена").

Новый код выглядит так:

Как вы могли заметить, мы используем функцию isNaN(value), которая возвращает true, если value не является числом, и parseInt(value) для преобразования значения в целое число при вычислении угла поворота.

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

Переименование слоев — несложная задача. Мы просто воспользуемся свойством слоя name и добавим к нему порядковый номер:

Группа в Photoshop API называется LayerSet, и мы можем получить доступ ко всем группам документа, вызвав свойство layerSets. Чтобы добавить новую группу в документ, мы должны вызвать метод add() набора слоев:

Затем, чтобы добавить слой в группу, мы будем использовать функцию перемещения (relativeObject, ElementPlacement). Обратите внимание, что функция move() перемещает слой в стеке слоев, а не на холсте. (Вы можете переместить слой на холсте с помощью функции translate(deltaX[, deltaY]).)

ElementPlacement — еще одна константа, определяющая, как мы разместим наш слой относительно… ну, относительного объекта. В нашем случае мы будем использовать ElementPlacement.INSIDE, чтобы поместить исходный слой в группу:

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

Подробнее о константе ElementPlacement можно прочитать на странице 202 документа «Справочник по JavaScript для Adobe Photoshop CS6» (PDF).

Окончательный код

Вот оно! RotateMe.jsx готов. Наш окончательный код выглядит так:

Это было не слишком сложно, не так ли?

Теперь вы можете поместить его в папку Photoshop/Presets/Scripts/ и запустить его, выбрав «Файл» → «Сценарии» в Photoshop. Использование разных фигур с разными значениями может дать интересные результаты:

Заключение

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

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

Давайте вместе сделаем Photoshop еще более полезным!

Ресурсы

Я все еще изучаю сценарии Photoshop, и вот несколько ресурсов, которые мне помогают в этом:

За прошедшие 18 лет мы накопили огромный опыт благодаря огромному портфолио проектов. Наша цель – достичь качественной и гибкой ответственности, связанной с мельчайшими деталями успеха, связанного с нашим именем. У нас есть несколько проектов различного характера, включая гражданское строительство, дороги и инфраструктуру, туннели и мосты, здания, электротехнические, машиностроительные отрасли, водопроводные сооружения, канализационные системы, торренты, инфраструктуру, садовые парки и дорожки. и т. д.

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

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