ドキュメント中に知覚的グラデーションがあるかどうかを見極める
当初より「知覚的グラデーションはCMYKドキュメントでは使ってはいけない」と言っていますが、そうは言っても使ってしまうのが人の性だということで、こいつらをなんとか見つけられないかって事が当面の課題となります。
第一選択としてスクリプト処理でなんとかならんか?ってことを調べるのですが、知覚的とディザはスクリプトのDOMに反映されていませんので、ストレートな処理では対応不能です。
まあ、色々考えるのですが、今回はファイル構造自体の調査が前回終了してますので、グラデーションのパラメータを見て何とかできないかという所で煮詰めていこうかなという感じです。
まずはコードから
function pgChecker()
{
if (!app.activeDocument.saved)
{
alert("実行する前に保存しといて下さい。");
return;
}
if (app.activeDocument.documentColorSpace==DocumentColorSpace.RGB)
{
alert("RGBモードのドキュメントの為処理を中止します。");
return;
}
var doc = app.activeDocument;
var originalPath = doc.fullName;
var copyFile = new File("~/Desktop/" + doc.name.replace(/\.[^\.]+$/, "") + "_copy.ai");
var opts = new IllustratorSaveOptions();
opts.pdfCompatible = false;
opts.compressed = false;
doc.saveAs(copyFile, opts);
doc.close();
app.open(originalPath);
copyFile.open("r");
var n = 0, st = "";
var re = /\d\s\d\s1\s\d\sBd$/;
while(!copyFile.eof)
{
st = copyFile.readln();
if (st.match(re)) n++
}
copyFile.remove();
alert("知覚的グラデーションの数=" + n)
}
pgChecker();
このスクリプトをテキストエディターにコピペして保存すればIllustratorから実行できるのですが、以下のリポジトリからもダウンロード可能です。
https://github.com/ten-A/seach_perceptual_gradient/tree/main
使い方
ドキュメントを開き、スクリプトを実行して下さい。開いたドキュメント上でのオブジェクトの検索ではなくファイルの保存データを直接操作しながら知覚的グラデーションを検索します。
検索結果はダイアログにて表示されます。RGBドキュメントや保存されていないデータはスキップしますのでご注意下さい。
リポジトリを設定したということで、詳しい方はアイデアや改変などをリポジトリの方にissuesやプルリクで投げ込んで下さい。正直もうちょっとなんとかしたいところです。