[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Скрипты в Photoshop.
AdminДата: Вторник, 24.11.2009, 13:07 | Сообщение # 1
Admin
Группа: Администраторы
Сообщений: 279
Репутация: 2 []
Статус: Offline
Урок 1, Введение
Требования
Впервые поддержку скриптов реализовали в Photoshop CS. В Photoshop CS2 возможности скриптов были существенно расширены. Таким образом, для работы со скриптами необходим Photoshop версии CS и выше. Все примеры автор тестировал в Photoshop CS2, поэтому исправная работа этих примеров в других версиях не гарантируется .

Общее
Если Вы часто пользуетесь Фотошопом, у Вас наверняка возникало желание сделать так, чтобы наиболее часто выполняемые Вами команды выполнялись автоматически. Скрипты могут решить эту задачу, да и не только эту.
Уроки из этой серии имеют дело с языком JavaScript, т.к. этот язык не зависит от операционной системы (работает как в Windows, так и в Mac), поддерживается Фотошопом. Но также досупен язык Visual Basic (только для Windows) и AppleScript (только для Mac).

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

Объекты
В Фотошопе объекты везде. Программа (Фотошоп) - пожалуй, главный объект.
Затем чуть ниже ее - объект Документ (проект Фотошопа). А затем уже другие объекты: слой, выделение, тект и т. д..

Коллекции объектов
Когда в Фотошопе Вы создаете новый объект, он автоматически заносится в коллекцию (или массив) объектов. Причем каждая коллекция хранит сходные объекты (объекты одного класса). Первое, что нужно запомнить: когда Вам нужно в программном коде получить доступ к какому-либо объекту в массиве, Вы должны использовать номер объекта в этом массиве, а также имя массива (коллекции). Это тоже, что и имя класса в общем случае. Но если Вы обращаетесь к объекту по имени, Вам нужно использовать только имя класса, без номера позиции в массиве.

Пример.

Code
documents[0]
document["MyDocument"]

Переменные
Перменные служат для установки каких-либо значений. В дальнейшим в Фотошопе не обязательно будет заново вводить эти значения, достаточно лишь воспользоваться именами переменных.
Давайте переменным осмысленные имена. Это облегчит Вам работу и понимание Вашего скрипта.
Сначала переменную нужно объявить. Т.е. Вы говорите программе, что будет использоваться переменная такого-то имени. Это делается так:

Code
var borderWidth

здесь var - означает объявление. А borderWidth - это имя переменной (как думаете, что оно означает?).
Затем переменной нужно присвоить значение:

Code
borderWidth = 10

А можно присвоить значение срезу после объявления переменной, в одной строчке:

Code
var borderWidth = 10

Комментарии
Комментарии
- это участок Вашего кода, объясняющий Вам и людям, которые читают Ваш код, разные участки Вашего кода.
Комментарии бывают однострочные и многострочные.

Пример:

Code
// Это однострочный комментарий

/* А это многострочный
комментарий */

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

Code
var doc1Ref = documents.add(500, 500)
var doc2Ref = documents.add(500, 500)
//Установим Document 1 как активный документ
activeDocument = doc1Ref

//Сделаем Document 2 активным
activeDocument = doc2Ref

//Добавим слоев к документам
var layer1Ref = doc2Ref.artLayers.add()
var layer2Ref = doc2Ref.artLayers.add()

//Сделаем 1-ой слой документа 2 активным
doc2Ref.ActiveLayer = layer1Ref

//Делаем 2-ой слой документа 2 активным
doc2Ref.ActiveLayer = layer2Ref

Итак, это был первый урок по скриптам. Если Вам понравилось, 2-ой урок скоро будет переведен.

И последнее и самое главное. Чтобы скрипт заработал, нужно набрать в каком-либо текстовом редакторе текст скрипта и сохранить его как <имя файла>.jsx. Затем в Фотошопе: File->Scripts->Browse и там найти Ваш файлик.

Удачи!

 
AdminДата: Вторник, 24.11.2009, 13:17 | Сообщение # 2
Admin
Группа: Администраторы
Сообщений: 279
Репутация: 2 []
Статус: Offline
Урок 2

ExtendScript Toolkit
Это программа программа предназначена для написания скриптов к Фотошопу.
Если у Вас ее нет, взять ее можно здесь (для Windows) или здесь (для Mac)
В Фотошоп CS2 ExtendScript Toolkit встроен автоматически.
Ниже представлено окно программы.

Сейчас Вам нужно усвоить 2 вещи.
Первое. В программе нужно выбрать целевую программу. Т.е. то приложения, для которого и пишется скрипт. Для этого в левом верхнем углу в выпадающем списке выберите Фотошоп. Будет диалоговое окно, в котором нажмите yes.
Второе. Чтобы запустить скрипт, достаточно нажать на кнопку в виде треугольника вверху, напоминающую кнопку play.

Документация
Каждый объект имеет много различных свойств и методов. Описания их можно найти здесь. Загрузите оттуда Photoshop JavaScript Reference Guide (для Windows).

Привет, мир!
Давайте создадим надпись "Привет, мир!".

//1. Чтобы все было в пикселях
preferences.rulerUnits = Units.PIXELS

//2. Создать новый документ 800х400 пикселей
var docRef = documents.add(800, 400)

//3. Добавить к документу новый слой
var artLayerRef = docRef.artLayers.add()

//4. Установить, что слой является текстовым
artLayerRef.kind = LayerKind.TEXT

//5. Далее определяется цвет текста (модель RGB)
textColor = new SolidColor();
textColor.rgb.red = 66;
textColor.rgb.green = 162;
textColor.rgb.blue = 191;

//6. Работа с текстом посредством TextItemRef (указатель на текстовый объект)
textItemRef = artLayerRef.textItem
textItemRef.contents = "Hello world!"
textItemRef.color = textColor
textItemRef.size = 30.0
textItemRef.position = new Array(300, 100) //пикселей слева и сверху

Пояснения к коду.
1. rulerUnit - такой объект, который как бы указывает, что именно будет одинаково во всем документе. В данном случае мы установили, что оидинаковым будет параметр "пиксели". Все объекты и величины будут измеряться в пикселях.

2. Создаем новый документ. Объявляем переменную docRef и сразу присваиваем ей значение. Значение - это результат метода Add класса documents. У метода Add есть два параметра (мы вставляем их в скобочки). Это Длина и ширина документа.

3. Почти также как в шаге 2, но добавляем уже слой. надпись docRef.artLayers.add() показывает, какому документу принадлежит слой. Для слоев используем класс artLayers.

4. LayerKind - тип слоя. У нас это текстовый тип.

5. Орпеделяем цвет текста. red, green, blue (красный, зеленый, синий) и соответствуемые им значения - насышенность цветов в данном цвете.

6. Определям характеристики нашего текста.

Теперь запустим наш скрипт. Не забудьте сохранить его.

Прикрепления: 8590381.gif (17.1 Kb)
 
AdminДата: Вторник, 24.11.2009, 13:18 | Сообщение # 3
Admin
Группа: Администраторы
Сообщений: 279
Репутация: 2 []
Статус: Offline
Вобщем от меня. "Зачем это нужно?" - спросите вы. Расскажу на примере, нужно было для форума изменить размер иконок наград(очень много) с 128х128 до 16х16 формата GIF сохраняя прозрачность. Покопался в интернете нашол несколько прог, но они прозрачность не сохраняют... Что делать? В фотошопе такую кучу(100-150 штук) очень трудоемко обрабатывать... я чуть было не забросил(не знал тогда про эти скрипты), но нашолся друг, который в этом шарил, написал не большой скриптик(к сожалению скрипт погиб, после того как согорел комп у друга, так бы выложил) и за несколько секунд все иконки были готовы))
 
  • Страница 1 из 1
  • 1
Поиск: