Бестолковая страница
 
Простой скрипт для Photoshop. Подпись под фотографией.

Еще один простой скрипт для Photoshop'а. В прошлый раз сделали вокруг фотографии рамку, теперь её можно подписать. Например, гордо вывести свое имя, сопроводив красивым значком копирайта. Или написать адрес сайта, чтобы случаный прохожий, встретив в сети фотографию, мог знать где найти другие такие же. Можно, наконец, написать название. Да мало ли зачем может понадобиться текстовая надпись. Если надписи надо сделать на большом числе фотографий, без скрипта не обойтись. Также как в случае с рамкой, заранее неизвестны размеры кадра, соответственно, воспользоваться Action не получится.

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

Открываем в Photoshop какую-нибудь фотографию, выбираем Type Tool и интересующий нас шрифт. Мне, например, нравится Palatino Linotype в наклонном варианте. Запускаем следующий скрипт:

var textLayer = activeDocument.artLayers[0];
if (textLayer.kind == LayerKind.TEXT)
{
alert(textLayer.textItem.font);
}

 
Вывалившееся окошко говорит, что во внутреннем представлении программы шрифт называется "PalatinoLinotype-Italic". Это надо запомнить, пригодится.

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

var docRef = app.activeDocument;

var strtRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;

var strtTypeUnits = app.preferences.typeUnits;
app.preferences.typeUnits = TypeUnits.PIXELS;

Меняем разрешение изображения на 72dpi. От разрешения будет зависеть размер шрифта. Даже, если он задан в пикселах.

var docHeight = docRef.height;
var docWidth = docRef.width;
var docResolution = 72.0;

docRef.resizeImage(docWidth, docHeight, docResolution);

Определяем цвет шрифта. Например, пусть будет, нейтрально-серым.

var textColor = new SolidColor;
textColor.rgb.hexValue = "646464";

Теперь самое интересное - непосредственно работа с текстом. Создаем новый слой. Делаем его текстовым. Пишем, собственно, сам текст. Красивый значок копирайта можно набрать шестнадцатиричным номером в юникодовской кодировке: \u00A9. Задаем положение надписи в правом нижнем углу кадра, с небольшим отступом. Определяем параметры текста, в том числе, название шрифта, которое определили раньше. Собственно, и все, надпись готова.

var newTextLayer = docRef.artLayers.add();
newTextLayer.kind = LayerKind.TEXT;
newTextLayer.textItem.contents = "Подпись, \u00A9 2005";
newTextLayer.textItem.position = Array(docWidth - 40, docHeight - 20);
newTextLayer.textItem.size = 12;
newTextLayer.textItem.color = textColor;
newTextLayer.textItem.fauxItalic = true;
newTextLayer.textItem.font = "PalatinoLinotype-Italic";
newTextLayer.textItem.justification = Justification.RIGHT;

Остается только восстановить программные настройки.

 

app.preferences.typeUnits = strtTypeUnits;
app.preferences.rulerUnits = strtRulerUnits;

Сохраняем скрипт в файл. Например, signature.js. Открываем в Photophop фотографию, которой будем делать рамку. Находим файл со скриптом, выбирая File->Scripts->Browse, запускаем. Наслаждаемся результатом.

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

© 2005, Павел aka P1at0.
liveinternet.ru: показано число посетителей за сегодня
Сайт управляется системой uCoz