1

私はJavaScriptを初めて使用し、指定された塗りつぶし色のすべてのpathItemsを見つけて別の塗りつぶし色に変更するスクリプトを書いています。これは、見本を使用せずに RGB または 16 進数で行う必要があります。これまでのところ、見つけた他のスクリプトを少しまとめましたが、多くのエラーが発生しています。これが私がこれまでに持っているものです:

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

この同じ質問に回答する必要がありましたが、既存の回答は不完全でした。これは完全に機能するソリューションです。「変換元」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);
于 2014-11-07T22:50:22.763 に答える
1

実際、スクリプトには多くのエラーがあります。エラーの種類を確認するには、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);
于 2011-12-29T20:00:25.457 に答える