Изменение цвета в Illustrator с помощью Javascript - PullRequest
0 голосов
/ 29 декабря 2011

Я очень новичок в javascript и пишу скрипт, чтобы найти все pathItems указанного цвета заливки и изменить их на другой цвет заливки.Это должно быть сделано в RGB или гексах без использования образцов.Пока что я собрал биты других скриптов, которые я нашел, но у меня много ошибок.Вот что у меня есть:

var myDoc =app.activeDocument
var fillRGBColor = function (pathItem){
    var fillColor = new Array();
    fillColor[0] = myDoc.pathItem.fillColor.red;
    fillColor[1] = myDoc.pathItem.fillColor.green;
    fillColor[2] = myDoc.pathItem.fillColor.blue;
    return fillColor;
}

fillRGBColor();
var pathItems = myDoc.pathItems;
for (i=0; i<pathItems.length; i++){
    fillColor[255,255,255] ==fillColor[50,50,50];
}

Спасибо!

Ответы [ 2 ]

2 голосов
/ 08 ноября 2014

Мне нужно было ответить на этот же вопрос, но существующий ответ был неполным.Вот полное рабочее решение.Вы указываете цвета «от» RGB и «до» RGB и вызываете fillRGBColor для того количества цветов, которое необходимо изменить.

Следующий шаг - выяснить, как автоматизировать этот скрипт для более чем одного файла иллюстратора:)

var fillRGBColor = function (pathItems, fr,fg,fb,tr,tg,tb){
    for (var i=0; i < pathItems.length; i++) {

        if (pathItems[i].fillColor.red == fr
           && pathItems[i].fillColor.green == fg
           && pathItems[i].fillColor.blue == fb) {
                pathItems[i].fillColor.red = tr;
                pathItems[i].fillColor.green = tg;
                pathItems[i].fillColor.blue = tb;
        }

    }
}

fillRGBColor(app.activeDocument.pathItems, 20, 20, 20, 50, 50, 50);
0 голосов
/ 30 декабря 2011

Действительно, в вашем скрипте много ошибок. Глядя на тип ошибок, я предлагаю вам прочитать Adobe Illustrator CS5 Справочник: JavaScript или любой учебник JavaScript.

В любом случае вы можете уменьшить количество ошибок JavaScript с помощью моей модифицированной версии вашего кода.

var fillRGBColor = function (pathItems, r, g, b){
    for (var i=0; i < pathItems.length; i++) {
        pathItems[i].fillColor.red = r;
        pathItems[i].fillColor.green = g;
        pathItems[i].fillColor.blue = b;
    }
}

fillRGBColor(app.activeDocument.pathItems, 50, 50, 50);
...