1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

photoshop скрипт

Тема в разделе "Adobe Photoshop", создана пользователем Erik_945, 2 май 2016.

Модераторы: Mic Nau
  1. Erik_945

    Erik_945 Активный участник

    С нами с:
    22.11.2014
    Сообщения:
    44
    Симпатии:
    6
    Баллы:
    7
    Недавно узнал о существовании своего скриптового языка для фотошопа. Задачка в следующем - у меня есть последовательность координат точек, которые надо соединить текущей кистью (как с шифтом покликать).
    Возможно ли это сделать, и если да, то как?
    Как вариант - создать контур по этим же точкам, а затем обвести.
     
  2. Cherednick

    Cherednick Мастер

    С нами с:
    26.01.2012
    Сообщения:
    545
    Симпатии:
    875
    Баллы:
    172
    Создаем текстовый файл, в котором будут координаты через пробел, каждая пара на своей строке, например:

    200 300
    400 600
    700 800

    Фотошоп должен запускаться от имени администратора.


    // Ставим размернсть документа в пикселях
    app.preferences.rulerUnits = Units.PIXELS;
    app.preferences.typeUnits = TypeUnits.PIXELS;
    var docRef = app.activeDocument;
    var i = 0;
    // Открываем файл
    var CoordFile = File.openDialog();
    CoordFile.open("r");

    // Создаем массив точек
    var lineArray = new Array();

    // Пересчитываем из файла в массив точек
    while (CoordFile.eof == false) {
    XY = CoordFile.readln().split(" ");
    lineArray = new PathPointInfo;
    lineArray.kind = PointKind.CORNERPOINT;
    lineArray.anchor = Array (parseInt(XY[0]) , parseInt(XY[1]));
    lineArray.leftDirection = lineArray[0].anchor;
    lineArray.rightDirection = lineArray[0].anchor;
    i++;
    }
    CoordFile.close();

    // Делаем из всего этого закрытый шейп
    var lineSubPathArray = new Array();
    lineSubPathArray[0] = new SubPathInfo();
    lineSubPathArray[0].operation = ShapeOperation.SHAPEXOR;
    lineSubPathArray[0].closed = true;
    lineSubPathArray[0].entireSubPath = lineArray;

    //Создаем путь
    var myPathItem = docRef.pathItems.add("ffg", lineSubPathArray);

    //Рисуем по нему контур
    myPathItem.strokePath(ToolType.BRUSH);
     

    Вложения:

    Erik_945 нравится это.
  3. Erik_945

    Erik_945 Активный участник

    С нами с:
    22.11.2014
    Сообщения:
    44
    Симпатии:
    6
    Баллы:
    7
    Ух ты, спасибо! А где-нить документацию на все это найти можно?
     
  4. Cherednick

    Cherednick Мастер

    С нами с:
    26.01.2012
    Сообщения:
    545
    Симпатии:
    875
    Баллы:
    172
Модераторы: Mic Nau

Поделиться этой страницей