{RGB-HSV相互変換} {---プログラム掲示板投稿フォーム--- 【ソフト名】RGB-HSV相互変換 (バージョン 0.10) 【作 成 者】SWinX (連絡先:swinx@plala.to) 【種 別】フリーソフトウェア 【ひまわりのバージョン】ver.1.48 【転 載】可(転載条件:特に有りません) 【改変運用】可(変換部分だけでも使えます) 【ひまわり本体への梱包】可 【実行時に利用作成するファイル】無 【コメント】RGBとHSVを相互変換します。 HSVは6角錐カラーモデルを使用しています。 参考url=http://www.openspc2.org/reibun/javascript/ ---投稿フォームここまで---} 母艦の、タイトルは、「RGB-HSV相互変換」 母艦の、幅は、250 母艦の、高さは、200
「R\nG\nB\nH\nS\nV」を、反復( 「{それ}ラベルを、ラベルとして、作成。」を、ひまわりする。 「(その、右側)に、{それ}バーを、バーとして、作成。」を、ひまわりする。 その、変更した時は、色計算。 その、最大値は、255 「(その、右側)に、{それ}エディタを、エディタとして、作成。」を、ひまわりする。 その、変更した時は、色計算。 その、幅は、64 「{それ}=0。」を、ひまわりする。 ) Hバーの、最大値は、359 母艦浮上。 待機。
*色計算 対象=イベントオブジェクトの、名前。 対象から、1文字、左端を切り取る。 もし、対象=「バー」ならば、対象=「エディタ」 でなければ、対象=「バー」 「{それ}{対象}の、変更した時は、」&『「」』&「 {それ}{対象}=イベントオブジェクト。 {それ}{対象}の、変更した時は、色計算」を、ひまわりする。 「{それ}=イベントオブジェクト。」を、ひまわりする。 それで、条件分岐。 「R」の時、(RGB2HSV。HSV更新) 「G」の時、(RGB2HSV。HSV更新) 「B」の時、(RGB2HSV。HSV更新) 「H」の時、(HSV2RGB。RGB更新) 「S」の時、(HSV2RGB。RGB更新) 「V」の時、(HSV2RGB。RGB更新) 母艦の、背景色は、RGB(R,G,B) 戻る。
*HSV更新 「H\nS\nV」を、反復( 「{それ}バーの、変更した時は、」&『「」』&「 {それ}バー={それ}。 {それ}バーの、変更した時は、色計算。 {それ}エディタの、変更した時は、」&『「」』&「 {それ}エディタ={それ}。 {それ}エディタの、変更した時は、色計算。」を、ひまわりする。 ) 戻る。
*RGB更新 「R\nG\nB」を、反復( 「{それ}バーの、変更した時は、」&『「」』&「 {それ}バー={それ}。 {それ}バーの、変更した時は、色計算。 {それ}エディタの、変更した時は、」&『「」』&「 {それ}エディタ={それ}。 {それ}エディタの、変更した時は、色計算。」を、ひまわりする。 ) 戻る。
//R,G,Bをもとに、HSVを計算する。 //R:赤成分[0-255] //G:緑成分[0-255] //B:青成分[0-255] *RGB2HSV 色配列=「{R}\n{G}\n{B}」 色配列の、配列最大値して、色最大値に、入れる。 色配列の、配列最小値して、色最小値に、入れる。 色差=色最大値-色最小値。 H=0 もし、色差>0ならば、( もし、色最大値=Gならば、H=120+(B-R)*60/色差 でなければ、( もし、色最大値=Bならば、H=240+(R-G)*60/色差 でなければ、( H=(G-B)*60/色差 もし、H<0ならば、H=H+360 ) ) ) H=INT(H) S=0 もし、色差>0ならば、S=INT(色差*255/色最大値) V=色最大値 戻る。
//H,S,Vをもとに、R,G,Bを計算する。 //H:色相[0-359] 赤=0,黄色=60,緑=120,水色=180,青=240,紫=300に相当 //S:彩度[0-255] 0=無彩色(灰色系) 255=鮮やかな色 //V:明度[0-255] 0=黒 255=明るい色 *HSV2RGB //グレースケールの判断 もし、S=0ならば、( R=V G=V B=V )でなければ、( H=H%360 もし、H<0ならば、H=H+360 色エリア=INT(H/60) 色割合=(H%60)/60 色差=S/255 色V=V //色最大値 色M=INT(V-V*色差) //色最小値 色1=INT(V-V*色割合*色差) 色2=INT(V-V*(1-色割合)*色差) 色エリアで、条件分岐。 0の時、(R=色V。G=色2。B=色M。) 1の時、(R=色1。G=色V。B=色M。) 2の時、(R=色M。G=色V。B=色2。) 3の時、(R=色M。G=色1。B=色V。) 4の時、(R=色2。G=色M。B=色V。) 5の時、(R=色V。G=色M。B=色1。) ) 戻る。
|