土曜日, 9月 20, 2025

JavaScriptでAI遊び 68 
Illustratorでグラデーションの構成色を抜き出す

Illustratorでグラデーションの構成色を抜き出します。

function extractMultipleGradientColors() {
if (app.documents.length === 0) {
alert("ドキュメントを開いてください。");
return;
}

var doc = app.activeDocument;
var selection = doc.selection;

if (selection.length === 0) {
alert("グラデーションを持つオブジェクトを選択してください。");
return;
}

var rectWidth = 20; // 矩形の幅
var rectHeight = 20; // 矩形の高さ
var startX = 100; // 矩形の開始位置
var startY = -100;

var colorCount = 0; // 配置のためのカウンター

for (var i = 0; i < selection.length; i++) {
var selectedItem = selection[i];

// グラデーションが適用されているか確認
if (selectedItem.filled &&
            selectedItem.fillColor.typename === "GradientColor") {
var gradient = selectedItem.fillColor.gradient;
var stops = gradient.gradientStops;

for (var j = 0; j < stops.length; j++) {
var colorStop = stops[j].color;

var rect = doc.pathItems.rectangle(startY, startX +
                    (colorCount * rectWidth), rectWidth, -rectHeight);
rect.filled = true;
rect.fillColor = colorStop;
rect.stroked = false;

colorCount++;
}
startY -= rectHeight + 10; // 次のグラデーションは下に配置
colorCount = 0; // 横のカウントをリセット
}
}

alert("選択したグラデーションの色を矩形で抜き出しました!");
}

extractMultipleGradientColors();


選択して実行するだけです。ただし、複数のオブジェクトを選択する場合はグループ解除されていないと正しく処理できません。

選択した単一オブジェクトだけでも処理可能です。