Простой скрипт для Photoshop'а. Делаем рамку вокруг фотографии. Собственно, зачем рамка нужна - вопрос отдельный. Причины могут быть самые разные, повод один - чтобы лучше смотрелось. Известный факт, что изображение, за редким исключением, выглядит гораздо выигрышнее, если окружить его широкой белой рамкой (реже черной).
Основная проблема, мешающая сделать рамку при помощи Action'а, проста до безобразия. Рамка делается командой resizeCanvas, в которой нужно задавать полные новые размеры изображения, а не величину изменения. То есть, надо посмотреть длину и ширину фотографии и прибавить к ним ширину рамки. И так каждый раз, для каждой новой фотографии, если, конечно, они не совершенно одинаковые.
Зачем считать самому, если для этого есть компьютер?
var strtRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;
function makeFrame (BackgroundColor, ForegroundColor, Size) {
var docHeight = docRef.height;
var docWidth = docRef.width;
var oldFgColor = app.foregroundColor;
var oldBgColor = app.backgroundColor;
var fgColor = new SolidColor();
var bgColor = new SolidColor();
fgColor.rgb.hexValue = ForegroundColor;
bgColor.rgb.hexValue = BackgroundColor;
var i = 0;
while (typeof Size[i] != "undefined"){
app.foregroundColor = (i % 2) ? bgColor : fgColor;
app.backgroundColor = (i % 2) ? fgColor : bgColor;
docWidth += Size[i] * 2.0;
docHeight += Size[i++] * 2.0;
docRef.resizeCanvas(docWidth, docHeight, AnchorPosition.MIDDLECENTER);
app.foregroundColor = oldFgColor;
app.backgroundColor = oldBgColor;
makeFrame ("FFFFFF", "010101", [1, 1, 20]);
app.preferences.rulerUnits = strtRulerUnits;
docRef = null;
Что делает скрипт. Перво-наперво сохраняет установленную настройку единиц
измерений в переменной strtRulerUnits и меняет эти самые единицы на пиксели.
Так будет удобнее. Также сохраняем старые значения background и foreground
цветов. После того как рамка будет нарисована, прежние значения будут восстановлены.
Функция рисует рамку, состоящую из нескольких ободков попеременно основного и дополнительного цветов. Например, черного и белого, но возможны любые варианты. Вызывая функцию указываем основной цвет (например, белый "FFFFFF") в шестнадцатиричном формате, дополнительный цвет (например, черный "010101") и дальше в квадратных скобках ширину вложенных рамочек изнутри наружу, столько сколько нужно. Например [1, 1, 20] - нарисует рамку в один пиксель белым цветом, потом в один черным, потом в двадцать белым.
Сохраняем скрипт в файл. Например, makeframe.js. Открываем в Photophop фотографию, которой будем делать рамку. Находим файл со скриптом, выбирая File->Scripts->Browse, запускаем. Наслаждаемся результатом.
Для дальнейшего ускорения процесса можно создать Action, вызывающий этот скрипт и привязать его запуск к горячей клавише.