木曜日, 8月 14, 2025

JavaScriptでAI遊び 60 
IllustratorでCMYK設定を5%刻みに変更

諸般の事情で作成しました。
選択したオブジェクトのCMYK設定を5%刻みに変更します。
ただしグループ化やグラデーション、パターンなどには対応しません。

ベースにしたデータを選択して実行・・・

function roundToNearestFive(value) {
return Math.round(value / 5) * 5;
}

function adjustCMYKtoNearestFive() {
if (app.documents.length == 0) {
alert("ドキュメントが開かれていません。");
return;
}

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

if (sel.length == 0) {
alert("オブジェクトを選択してください。");
return;
}

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

if (obj.filled && obj.fillColor.typename == "CMYKColor") {
var cmyk = obj.fillColor;
// 各 CMYK 値を 5% 刻みに四捨五入し、
            // 0〜100% の範囲に制限
cmyk.cyan = Math.min(100, Math.max
                (0, roundToNearestFive(cmyk.cyan)));
cmyk.magenta = Math.min(100, Math.max
                (0, roundToNearestFive(cmyk.magenta)));
cmyk.yellow = Math.min(100, Math.max
                (0, roundToNearestFive(cmyk.yellow)));
cmyk.black = Math.min(100, Math.max
                (0, roundToNearestFive(cmyk.black)));

obj.fillColor = cmyk;
}
}

alert("CMYK 値を 5% 刻みで四捨五入しました。");
}

adjustCMYKtoNearestFive();

それぞれのカラー設定。

実行すると直ぐに上のメッセージが表示されます。

処理結果です。

処理後のカラー設定。