クリエイター手抜きプロジェクト[326]Illustrator CS3〜6編 一定範囲の彩度の図形を選択する
── 古籏一浩 ──

投稿:  著者:


色相、輝度、とくれば、最後に残ったのは「彩度」です。今回はIllustratorで選択した図形の中から、一定範囲の彩度の図形を選択するスクリプトです。このスクリプトを使えば、特定の彩度の範囲の図形だけを選択することができます。

スクリプトの使い方ですが、あらかじめ対象となる図形を選択しておきます。その後、スクリプトを実行します。彩度の開始値と終了値を入力します(入力する値はカラーパネルの値と同じです)。

これで該当する範囲の彩度を持つ図形だけが選択された状態で残ります。彩度の値は、カラーパネルに表示される値と同じはずです。ただ、カラーパネルで表示されるのは小数点以下第二位までです。スクリプトでは、それよりも高い精度なので、微妙な彩度を選択する場合は、誤差も考慮しておいてください。





// 指定した範囲の彩度(0〜100)を選択
(function(){
var text = prompt("開始範囲(彩度0〜100)入れてください", 30);
if (!text){ return; }
var startRange = parseFloat(text);
var text = prompt("終了範囲(彩度0〜100)入れてください", 50);
if (!text){ return; }
var endRange = parseFloat(text);
//$.writeln("startRange = "+startRange);
//$.writeln("endRange = "+endRange);
// 選択処理
var selObj = app.activeDocument.selection;
for(var i=0; i<selObj.length; i++){
var RGBcolor = selObj[i].fillColor;
var R = RGBcolor.red;
var G = RGBcolor.green;
var B = RGBcolor.blue;
//$.writeln("RGB = "+R+","+G+","+B);
var HSL = RGBtoHSL2(R, G, B);
var H = HSL.H;
var S = HSL.S;
var L = HSL.L;
//$.writeln("HSL = "+H+","+S+","+L);
S = S * 100; // イラストレータ用に補正
if ((S < startRange) || (S > endRange)){
selObj[i].selected = false;
//$.writeln("選択を解除しました");
}
//$.writeln("-------------");
}
})();
// RGBから色相(HSB)に変換
// (R:0~255, G:0〜255, B:0〜255, h:0〜360, s:0〜1, l:0〜1)
function RGBtoHSL2(r, g, b){
var h = 0;
var s = 0;
var l = 0;
var cmax, cmin;
if ( r >= g ) cmax = r; else cmax = g;
if ( b > cmax) cmax = b;
if ( r <= g ) cmin = r; else cmin = g;
if ( b < cmin) cmin = b;
l = (cmax + cmin) / 2;
var c = cmax - cmin;
if ( c != 0 ){
s = ((cmax - cmin) / cmax);
if ( r == cmax){ h = ( g - b ) / c;
}else{
if (g == cmax){ h = 2 + ( b - r ) / c;
}else{
if ( b == cmax ) h = 4 + ( r - g ) / c;
}
}
h = h * 60;
if ( h < 0 ) h = h + 360;
}
return { H:h, S:s, L:l/255 };
}


【古籏一浩】openspc@alpha.ocn.ne.jp
< http://www.openspc2.org/
>

外ではまたセミが鳴き始めて夏に戻ったような......。来月も暑いらしい......。という事で次に出る本も厚いものになってます。「JavaScript逆引きハンドブック」は1000頁ほどあります。JavaScriptだけでなくHTML5 APIのサンプルも大量に入れてあります。さすがに、これ以上HTML5関係が増えると個人では把握しきれない状態です。

・JavaScript逆引きハンドブック【New!!】
< http://www.amazon.co.jp/dp/4863541082
>

・すべての人に知っておいてほしい スマートフォンサイトデザインの基本原則【New!!】
< http://www.amazon.co.jp/dp/4844362844
>

・毎度おなじみASCII.jpの連載
「DeviceOrientation Eventでブロック崩し作ってみた」
< http://ascii.jp/elem/000/000/711/711428/
>

・PDF構造解説
< http://www.amazon.co.jp/dp/4873115493
>

・10日で覚えるHTML5入門教室
< http://www.amazon.co.jp/dp/4798124184
>

・AndroidのためのHTML5本格アプリ開発
< http://www.amazon.co.jp/dp/4897978971/
>

・改訂5版JavaScriptポケットリファレンス
< http://www.amazon.co.jp/dp/4774148199
>

・ハイビジョン映像素材集
< http://www.openspc2.org/HDTV/
>

・クリエイター手抜きプロジェクト
< http://www.openspc2.org/projectX/
>

・Adobe Illustrator CS3 + JavaScript 自動化サンプル集
< http://www.openspc2.org/book/PDF/Adobe_Illustrator_CS3_JavaScript_Book/
>
吉田印刷所の「印刷の泉」でも購入できるようになりました。