1

我对 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];
}

谢谢!

4

2 回答 2

2

我需要回答同样的问题,但现有的答案不完整。这是一个完整的工作解决方案。您指定“from” RGB 和“to” RGB 颜色并调用 fillRGBColor 以获取需要更改的颜色。

下一步是弄清楚如何为超过 1 个插画文件自动化这个脚本:)

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);
于 2014-11-07T22:50:22.763 回答
1

确实,您的脚本中有很多错误。查看错误类型,我建议您阅读Adob​​e 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);
于 2011-12-29T20:00:25.457 回答