火曜日, 11月 04, 2025

JavaScriptでAI遊び 78 
Illustratorでオブジェクトの色をランダム変更(RGB)

選択したオブジェクトの色を変更]のアップデート版。複数オブジェクトに対応。ただし、パターやグラデーションには未対応です。RGB版ですがCMYKでも利用出来ます。


// 選択したオブジェクトの塗りカラーをランダムに変更RGB版
(function () {
if (app.documents.length === 0) {
alert("ドキュメントを開いてください");
return;
}
var doc = app.activeDocument;
if (doc.selection.length === 0) {
alert("オブジェクトを選択してください");
return;
}

var sel = doc.selection;
var count = 0;

for (var i = 0; i < sel.length; i++) {
var obj = sel[i];

// パスやシェイプのみ対象
if (obj.typename === "PathItem" ||
            obj.typename === "CompoundPathItem" ||
            obj.typename === "TextFrame") {
var color = new RGBColor();
color.red = Math.random() * 255;
color.green = Math.random() * 255;
color.blue = Math.random() * 255;

try {
obj.fillColor = color; // 塗り色変更
count++;
} catch (e) {
// テキストや特殊オブジェクトで塗りがない場合はスキップ
}
}
}

alert(count + " 個のオブジェクトのカラーをランダムに変更しました");
})();

変更したいオブジェクトのグループを解除して実行します。

直ぐに[何色変更]したのかを表示して結果を確認できます。

結果に対して更に実行した結果です。