Основы работы со скриптами в Photoshop CS2
Работая с Photoshop, нам часто приходится выполнять одни и те же операции, но здравый смысл наверняка говорит вам, что как-то нехорошо все это — неужели ничего нельзя автоматизировать? Можно и нужно. А как это сделать, мы сегодня с вами и рассмотрим.
Пользователи со стажем наверняка скажут: да куда проще создать экшен и не забивать себе голову какими-то скриптами. С этим нельзя не согласиться, но экшены не способны к анализу ситуации и могут лишь только повторять одни и те же действия, в то время как в скриптах можно запрограммировать варианты действий в соответствии с возникшими ситуациями.
Языки, применяемые в скриптах
Photoshop поддерживает три различных языка программирования:
. Visual Basic — позволяет взаимодействовать множеству приложений и сервисов. Совместим только с Windows.
. Java Script — многие наверняка слышали о таком языке. Особенно это касается пользователей Интернет. Язык совместим как с Windows-, так и с Mac OS системами. Кстати говоря, навыки, полученные при работе с данным языком, пригодятся вам и при разработке сайтов, и если вы будете работать с Action Scripts во Flash.
. AppleScript — позволяет работать с множеством приложений и сервисов по аналогии с Visual Basic, но совместим только с Mac OS системами. Наиболее оптимальным вариантом будет написание скриптов на Java Script, так как он является кросс-платформенным.
Как запускать скрипты?
Нет ничего сложного. К примеру, нам нужно запустить какой-нибудь уже готовый Java-скрипт из папки Guide\Sample Scripts\JavaScript в папке с Photoshop. В этом случае нужно выполнить команду File > Scripts > Browse, перейти в нужную папку и указать файл.
Переменные
Переменные служат для сохранения организационных записей. К примеру, в вашем скрипте часто присутствует заголовок "Photoshop is the best" — чем повторять эту фразу вручную, проще задать ее в качестве переменной и уже в дальнейшем применять именно переменную, и впоследствии, если вам вдруг понадобится поменять заголовок, достаточно будет изменить переменную. Итак, остановимся на этом чуть подробнее (набирать скрипты можно в таких программах, как Блокнот).
Давайте протестируем наш скрипт. Сделаем всплывающее окно с текстом нашей переменной. Для этого добавим alert(), где в скобках нужно указать вашу переменную. Да, и не забудьте в конце поставить ;. Сохраните ваш файл с расширением .jsx и затем укажите в Photoshop путь к нему. Как результат вы увидите всплывающее окно с вашим текстом.
Операторы
Операторы в этих скриптах представляют собой то же самое, что и арифметические операторы сложения, вычитания, деления и умножения, и помогут вам при создании уравнений в скрипте. Давайте попробуем с вами создать простенький скрипт, используя переменные и операторы. Итак, нам понадобится создать две переменные, в которых мы зададим нужные числа. Пусть это будут переменные varNum1 и varNum2. Первая будет равна 5, а вторая — 8. Выглядеть это будет следующим образом:
var myNum1 = 5;
var myNum2 = 8;
Далее нам нужно добавить переменную, отвечающую за ответы. Логично будет назвать ее answer — в ней мы сразу укажем, что будет входить в ответ. Пусть это будет сумма первой и второй переменной. В общем виде это будет выглядеть так:
var myNum1 = 5;
var myNum2 = 8;
var answer = myNum1 + myNum2;
Как вы понимаете, нужно это дело еще каким-то образом посмотреть, ну, а каким, мы уже знаем. Про alert не забыли? Его и добавляем, а чтобы видеть сразу ответ то эту переменную в скобки и добавляем:
var myNum1 = 5;
var myNum2 = 8;
var answer = myNum1 + myNum2;
alert(answer);
Проверьте работоспособность скрипта посредством Photoshop.
Условные выражения
Теперь, когда мы познакомились с основными операторами, пришло время узнать об условных выражениях "if" и "then". Для тех, кто не любит английский, поясню: "if" в переводе означает "если", а "then" — "тогда". Задавать условия таким образом представляется очень удобным, так как в "if" мы задаем само условие, а в "then" — действие. Правда, здесь "if" ограничено определением параметрами истинности переменных: "true" (верным) или "false" (неверным), ну, или, по-человечески, правдой или ложью. Рассмотрим условные выражения на примере определения погоды — все равно наш прогноз по точности не будет уступать данному синоптиками:). Начнем по порядку, а по порядку у нас стоит определение переменных, необходимых для работы. Пусть это будет солнце (нет, не воздух и вода:)), дождь и ветер:
var солнце = ;
var дождь = ;
var ветер = ;
Теперь пришло время добавить первые условия. В частности, зададим, что на улице солнечно. Для этого добавим оператор if и в скобках напишем: солнце == true
Обратите внимание: используется два знака "равно". Также не забудьте поставить фигурные скобки {} — они указывают на исполнение скрипта, если условие истинно. Если это будет не так, шаг будет попросту пропущен.
var солнце = ;
var дождь = ;
var ветер = ;
if (солнце == true) {
alert("На улице солнечно, пора прогуляться!");
}
Если нам нужно добавить еще условия, то используйте выражение "else" (по-русски это "еще") — ставится оно перед "if". Также, если вы хотите добавить больше одного условия в скобках, можете использовать амперсанды &&.
var солнце = ;
var дождь = ;
var ветер = ;
if (солнце == true) {
alert("На улице солнечно, пора прогуляться!");
} else if (дождь == true) {
alert("На улице дождь. Без зонтика не обойтись :(");
} else if (солнце == true && ветер == true) {
alert("Дует такой сильный ветер, что сигареты выворачивает вместе с зубами");
} else if (дождь == true && ветер == true) {
alert("Да там ураган!")
} else {
alert("В такую погоду хорошая собака хозяина из дома не выгонит :)")
}
Осталось только прописать значения true и false для наших переменных:
var солнце = false;
var дождь = false;
var ветер = true;
if (солнце == true) {
alert("На улице солнечно, пора прогуляться!");
} else if (дождь == true) {
alert("На улице дождь. Без зонтика не обойтись :(");
} else if (солнце == true && ветер == true) {
alert("Дует такой сильный ветер, что сигареты выворачивает вместе с зубами ");
} else if (дождь == true && ветер == true) {
alert("Да там ураган!")
} else {
alert("В такую погоду хорошая собака хозяина из дома не выгонит :)")
}
Недостаток данного скрипта состоит в том, что при такой последовательности расположения мы никогда не получим сообщения "Дует такой сильный ветер, что сигареты выворачивает вместе с зубами". Поэтому для получения нужного сообщения придется менять местами переменные.
Оператор цикла
Данный оператор (оператор while) служит для цикличного прохождения через серию инструкций. Он чем-то похож на условные выражения, поскольку повторяет выполнение скрипта, пока не перестанет попадаться истинное значение (да простят меня программисты за мой язык). Для создания цикла нам нужно задать номер переменной, которая будет играть роль счетчика, который будет записывать число обращений к циклу. Вы можете использовать любое имя переменной, но традиционно сложилось так, что "счетчик" цикла должен называться "i". Это хороший тон, да и другим программистам будет легче разбираться в вашем коде. Установите значение i как 0.
var i=0
Сам по себе синтаксис цикла выглядит следующим образом:
var i=0
while () {
}
Зададим условие для данного цикла "i<5", записав данное значение в круглых скобках. Данное условие значит, что скрипт будет проигрываться не более 5 раз (надеюсь, все помнят, что мы устанавливали счетчик "i").
var i=0
while (i<5) {
}
Теперь добавим окно, в котором будет написано наше значение счетчика:
var i=0
while (i<5) { alert("Значение i " + i);
}
Нам нужно указать на переменную счетчика, чтобы он проигрывался один раз. Для этого просто добавьте к коду "i++". Если не добавить эту строку, то скрипт будет проигрываться бесконечно:
var i=0
while (i<5) { alert("Значение i " + i);
i++;
}
Сохраните скрипт и запустите его. Окно появится 4 раза.
На этом наш краткий вводный обзор в тему скриптов завершен. Надеюсь, эта статья поможет вам правильно начать работу в данном направлении.
Сергей Топорков, http://www.cc-studio.ru/
Пользователи со стажем наверняка скажут: да куда проще создать экшен и не забивать себе голову какими-то скриптами. С этим нельзя не согласиться, но экшены не способны к анализу ситуации и могут лишь только повторять одни и те же действия, в то время как в скриптах можно запрограммировать варианты действий в соответствии с возникшими ситуациями.
Языки, применяемые в скриптах
Photoshop поддерживает три различных языка программирования:
. Visual Basic — позволяет взаимодействовать множеству приложений и сервисов. Совместим только с Windows.
. Java Script — многие наверняка слышали о таком языке. Особенно это касается пользователей Интернет. Язык совместим как с Windows-, так и с Mac OS системами. Кстати говоря, навыки, полученные при работе с данным языком, пригодятся вам и при разработке сайтов, и если вы будете работать с Action Scripts во Flash.
. AppleScript — позволяет работать с множеством приложений и сервисов по аналогии с Visual Basic, но совместим только с Mac OS системами. Наиболее оптимальным вариантом будет написание скриптов на Java Script, так как он является кросс-платформенным.
Как запускать скрипты?
Нет ничего сложного. К примеру, нам нужно запустить какой-нибудь уже готовый Java-скрипт из папки Guide\Sample Scripts\JavaScript в папке с Photoshop. В этом случае нужно выполнить команду File > Scripts > Browse, перейти в нужную папку и указать файл.
Переменные
Переменные служат для сохранения организационных записей. К примеру, в вашем скрипте часто присутствует заголовок "Photoshop is the best" — чем повторять эту фразу вручную, проще задать ее в качестве переменной и уже в дальнейшем применять именно переменную, и впоследствии, если вам вдруг понадобится поменять заголовок, достаточно будет изменить переменную. Итак, остановимся на этом чуть подробнее (набирать скрипты можно в таких программах, как Блокнот).
Имя переменной | Описание |
var | Первое, c чего следует начать, — это сказать, что Photoshop должен делать. А сделать это надо, задав переменную — вы можете просто написать var |
var myVar | Теперь нам нужно как-то "обозвать" переменную. Имена переменных могут содержать только алфавитно-цифровые символы и символы подчеркивания. Давайте назовем переменную myVar |
var myVar = "Привет, сообщество Photoshop'еров!" | Затем мы должны сообщить Photoshop, что мы хотим видеть под этой переменной. Здесь существует три варианта действия:; Написать строку текста. Только не забывайте, что текст должен быть заключен в кавычки.; Числа. Они могут использоваться в математических операциях.; Булевы переменные: true или false. ; После переменной вам необходимо поставить знак = и написать значение. Если вы будете использовать текст, то не забудьте заключить его в кавычки. |
var myVar = "Привет, сообщество Photoshop'еров!"alert(myVar) | Для завершения инструкций нам понадобится только напечатать в конце символ ; |
Давайте протестируем наш скрипт. Сделаем всплывающее окно с текстом нашей переменной. Для этого добавим alert(), где в скобках нужно указать вашу переменную. Да, и не забудьте в конце поставить ;. Сохраните ваш файл с расширением .jsx и затем укажите в Photoshop путь к нему. Как результат вы увидите всплывающее окно с вашим текстом.
Операторы
Операторы в этих скриптах представляют собой то же самое, что и арифметические операторы сложения, вычитания, деления и умножения, и помогут вам при создании уравнений в скрипте. Давайте попробуем с вами создать простенький скрипт, используя переменные и операторы. Итак, нам понадобится создать две переменные, в которых мы зададим нужные числа. Пусть это будут переменные varNum1 и varNum2. Первая будет равна 5, а вторая — 8. Выглядеть это будет следующим образом:
var myNum1 = 5;
var myNum2 = 8;
Далее нам нужно добавить переменную, отвечающую за ответы. Логично будет назвать ее answer — в ней мы сразу укажем, что будет входить в ответ. Пусть это будет сумма первой и второй переменной. В общем виде это будет выглядеть так:
var myNum1 = 5;
var myNum2 = 8;
var answer = myNum1 + myNum2;
Как вы понимаете, нужно это дело еще каким-то образом посмотреть, ну, а каким, мы уже знаем. Про alert не забыли? Его и добавляем, а чтобы видеть сразу ответ то эту переменную в скобки и добавляем:
var myNum1 = 5;
var myNum2 = 8;
var answer = myNum1 + myNum2;
alert(answer);
Проверьте работоспособность скрипта посредством Photoshop.
Условные выражения
Теперь, когда мы познакомились с основными операторами, пришло время узнать об условных выражениях "if" и "then". Для тех, кто не любит английский, поясню: "if" в переводе означает "если", а "then" — "тогда". Задавать условия таким образом представляется очень удобным, так как в "if" мы задаем само условие, а в "then" — действие. Правда, здесь "if" ограничено определением параметрами истинности переменных: "true" (верным) или "false" (неверным), ну, или, по-человечески, правдой или ложью. Рассмотрим условные выражения на примере определения погоды — все равно наш прогноз по точности не будет уступать данному синоптиками:). Начнем по порядку, а по порядку у нас стоит определение переменных, необходимых для работы. Пусть это будет солнце (нет, не воздух и вода:)), дождь и ветер:
var солнце = ;
var дождь = ;
var ветер = ;
Теперь пришло время добавить первые условия. В частности, зададим, что на улице солнечно. Для этого добавим оператор if и в скобках напишем: солнце == true
Обратите внимание: используется два знака "равно". Также не забудьте поставить фигурные скобки {} — они указывают на исполнение скрипта, если условие истинно. Если это будет не так, шаг будет попросту пропущен.
var солнце = ;
var дождь = ;
var ветер = ;
if (солнце == true) {
alert("На улице солнечно, пора прогуляться!");
}
Если нам нужно добавить еще условия, то используйте выражение "else" (по-русски это "еще") — ставится оно перед "if". Также, если вы хотите добавить больше одного условия в скобках, можете использовать амперсанды &&.
var солнце = ;
var дождь = ;
var ветер = ;
if (солнце == true) {
alert("На улице солнечно, пора прогуляться!");
} else if (дождь == true) {
alert("На улице дождь. Без зонтика не обойтись :(");
} else if (солнце == true && ветер == true) {
alert("Дует такой сильный ветер, что сигареты выворачивает вместе с зубами");
} else if (дождь == true && ветер == true) {
alert("Да там ураган!")
} else {
alert("В такую погоду хорошая собака хозяина из дома не выгонит :)")
}
Осталось только прописать значения true и false для наших переменных:
var солнце = false;
var дождь = false;
var ветер = true;
if (солнце == true) {
alert("На улице солнечно, пора прогуляться!");
} else if (дождь == true) {
alert("На улице дождь. Без зонтика не обойтись :(");
} else if (солнце == true && ветер == true) {
alert("Дует такой сильный ветер, что сигареты выворачивает вместе с зубами ");
} else if (дождь == true && ветер == true) {
alert("Да там ураган!")
} else {
alert("В такую погоду хорошая собака хозяина из дома не выгонит :)")
}
Недостаток данного скрипта состоит в том, что при такой последовательности расположения мы никогда не получим сообщения "Дует такой сильный ветер, что сигареты выворачивает вместе с зубами". Поэтому для получения нужного сообщения придется менять местами переменные.
Оператор цикла
Данный оператор (оператор while) служит для цикличного прохождения через серию инструкций. Он чем-то похож на условные выражения, поскольку повторяет выполнение скрипта, пока не перестанет попадаться истинное значение (да простят меня программисты за мой язык). Для создания цикла нам нужно задать номер переменной, которая будет играть роль счетчика, который будет записывать число обращений к циклу. Вы можете использовать любое имя переменной, но традиционно сложилось так, что "счетчик" цикла должен называться "i". Это хороший тон, да и другим программистам будет легче разбираться в вашем коде. Установите значение i как 0.
var i=0
Сам по себе синтаксис цикла выглядит следующим образом:
var i=0
while () {
}
Зададим условие для данного цикла "i<5", записав данное значение в круглых скобках. Данное условие значит, что скрипт будет проигрываться не более 5 раз (надеюсь, все помнят, что мы устанавливали счетчик "i").
var i=0
while (i<5) {
}
Теперь добавим окно, в котором будет написано наше значение счетчика:
var i=0
while (i<5) { alert("Значение i " + i);
}
Нам нужно указать на переменную счетчика, чтобы он проигрывался один раз. Для этого просто добавьте к коду "i++". Если не добавить эту строку, то скрипт будет проигрываться бесконечно:
var i=0
while (i<5) { alert("Значение i " + i);
i++;
}
Сохраните скрипт и запустите его. Окно появится 4 раза.
На этом наш краткий вводный обзор в тему скриптов завершен. Надеюсь, эта статья поможет вам правильно начать работу в данном направлении.
Сергей Топорков, http://www.cc-studio.ru/
Компьютерная газета. Статья была опубликована в номере 13 за 2006 год в рубрике софт