🌸 「なでしこ」
>
🍯 「貯蔵庫」
RGBとHSVとHSL
🌟新規
📒一覧
🔌
🔍検索
🚪ログイン
RGBとHSVとHSL 📖
今後のため、RGBとHSVとHSLを変換するためのプログラムです。単体では動きません。コピーなどして使用してください。
プログラム:
(→大)
# これも使用のためのものです。単体では動きません。(!検証中) # 次のことができます。(「Xに」の辞書に戻り値が入ります) # # (RGB形式で赤緑青に)RGB分離 # (相彩明で赤緑青に)HSV2RGB変換 # (相彩輝で赤緑青に)HSL2RGB変換 # (赤緑青で相彩明に)RGB2HSV変換 # (赤緑青で相彩輝に)RGB2HSL変換 # # 相彩明は{”相”:~360、”彩”:~255、”明”:~255} # 赤緑青は{”赤”:~255、”緑”:~255、”青”:~255} # 相彩明は{”相”:~360、”彩”:~255、”明”:~255} # RGB形式は「#000000」~「#ffffff」 ●(相彩明で赤緑青に)HSV2RGB変換とは #(H:~360、S:~255、V:~255)=> Hは、相彩明@「相」。 Sは、相彩明@「彩」。 Vは、相彩明@「明」。 最大値は、V。 最小値は、最大値-((S/255)*最大値) もし、H<0ならば -1を戻す。 違えば、もし、H<=60ならば R=最大値 G=(H/60)*(最大値-最小値)+最小値 B=最小値 違えば、もし、H<=120ならば R=((120-H)/60)*(最大値-最小値)+最小値 G=最大値 B=最小値 違えば、もし、H<=180ならば R=最小値 G=最大値 B=((H-120)/60)*(最大値-最小値)+最小値 違えば、もし、H<=240ならば R=最小値 G=((240-H)/60)*(最大値-最小値)+最小値 B=最大値 違えば、もし、H<=300ならば R=((H-240)/60)*(最大値-最小値)+最小値 G=最小値 B=最大値 違えば、もし、H<=360ならば R=最大値 G=最小値 B=((360-H)/60)*(最大値-最小値)+最小値 違えば、 -1を戻す。 ここまで。 赤緑青@「赤」=Rを四捨五入。 赤緑青@「緑」=Gを四捨五入。 赤緑青@「青」=Bを四捨五入。 ここまで。 ●(相彩輝で赤緑青に)HSL2RGB変換とは #(H:~360、S:~255、L:~255)=> H=相彩輝@「相」 S=相彩輝@「彩」/2.55 L=相彩輝@「輝」/2.55 もし、(L<=49)ならば、 X=L*(S/100) 最大値=2.55*(L+X) 最小値=2.55*(L-X) 違えば、 X=(100-L)*(S/100) 最大値=2.55*(L+X) 最小値=2.55*(L-X) ここまで。 ギャップ=最大値-最小値 もし、H<=60ならば、 R=最大値 G=(H/60)*ギャップ+最小値 B=最小値 違えば、もし、H<=120ならば、 R=((120-H)/60)*ギャップ+最小値 G=最大値 B=最小値 違えば、もし、H<=180ならば、 R=最小値 G=最大値 B=((H-120)/60)*ギャップ+最小値 違えば、もし、H<=240ならば、 R=最小値 G=((240-H)/60)*ギャップ+最小値 B=最大値 違えば、もし、H<=300ならば、 R=((H-240)/60)*ギャップ+最小値 G=最小値 B=最大値 違えば、 R=最大値 G=最小値 B=((360-H)/60)*ギャップ+最小値 ここまで。 赤緑青@「赤」=Rを四捨五入。 赤緑青@「緑」=Gを四捨五入。 赤緑青@「青」=Bを四捨五入。 ここまで。 ●(赤緑青で相彩明に)RGB2HSV変換とは #=>(H:~360、S:~255,V:~255) Rは、赤緑青@「赤」。 Gは、赤緑青@「緑」。 Bは、赤緑青@「青」。 同値条件は偽。 #色相と最大値、最小値、同値条件を計算。 もし、(R>=G)&&(R>B)ならば もし、G>=Bならば 最小値は、B。 違えば 最小値は、G。 ここまで。 最大値は、R。 色相=60*((G-B)/(R-最小値))+0。 違えば、もし、(G>=B)&&(G>R)ならば もし、B>=Rならば 最小値は、R。 違えば 最小値は、B。 ここまで。 最大値は、G。 色相=60*((B-R)/(G-最小値))+120。 違えば、もし、(B>=R)&&(B>G)ならば もし、R>=Gならば 最小値は、G。 違えば 最小値は、R。 ここまで。 最大値は、B。 色相=60*((R-G)/(B-最小値))+240。 違えば、 同値条件は真。最大値はR。最小値はR。色相は0。 ここまで。 色相<0の間 色相=色相+360 ここまで。 色相=色相%360。 相彩明@「相」は、色相を四捨五入。 #彩度を計算 もし、同値条件が真ならば 彩度=0 違えば 彩度=255*(最大値-最小値)/最大値 ここまで。 相彩明@「彩」は、彩度を四捨五入。 #明度を求める 明度=最大値 相彩明@「明」は、明度を四捨五入。 ここまで。 ●(赤緑青で相彩輝に)RGB2HSL変換とは #=>(H:~360、S:~255、L:~255) Rは、赤緑青@「赤」。 Gは、赤緑青@「緑」。 Bは、赤緑青@「青」。 同値条件は偽。 #色相と最大値、最小値、同値条件を計算。 もし、(R>=G)&&(R>B)ならば もし、G>=Bならば 最小値は、B。 違えば 最小値は、G。 ここまで。 最大値は、R。 色相=60*((G-B)/(R-最小値))+0。 違えば、もし、(G>=B)&&(G>R)ならば もし、B>=Rならば 最小値は、R。 違えば 最小値は、B。 ここまで。 最大値は、G。 色相=60*((B-R)/(G-最小値))+120。 違えば、もし、(B>=R)&&(B>G)ならば もし、R>=Gならば 最小値は、G。 違えば 最小値は、R。 ここまで。 最大値は、B。 色相=60*((R-G)/(B-最小値))+240。 違えば、 同値条件は真。最大値はR。最小値はR。色相は0。 ここまで。 色相<0の間 色相=色相+360 ここまで。 色相=色相%360。 相彩輝@「相」は、色相を四捨五入。 #彩度を計算 CNT=(最大値+最小値)/2 もし、CNT<=127ならば、 彩度=255*(最大値-最小値)/(最大値+最小値) 違えば、もし、最小値=255ならば、 彩度=0 違えば、 彩度=255*(最大値-最小値)/(510-最大値-最小値) ここまで。 相彩輝@「彩」は、彩度を四捨五入。 #明度を求める 輝度=CNT 相彩輝@「輝」は、輝度を四捨五入。 ここまで。 ●(色で赤緑青に)RGB分離とは #=>{”赤”:~255、”緑”:~255、”青”:~255} 色文字=色で2から6文字抜き出す。 R=色文字で1から2文字抜き出す。 G=色文字で3から2文字抜き出す。 B=色文字で5から2文字抜き出す。 #R&「 」&G&「 」&Bを表示。 赤緑青@「赤」=TOINT(「0x」&R) 赤緑青@「緑」=TOINT(「0x」&G) 赤緑青@「青」=TOINT(「0x」&B) ここまで。
プログラムを実行
⭐ sphiarno🕷️88ver. 作
タイトル:
RGBとHSVとHSL
ライセンス:
CC0 (著作権破棄)
タイプ:
wnako
タグ:
-
利用バージョン:
3.2.52
作成日時:
2022/04/22 20:05
公開の投稿
⭐
ログイン
して★を付けよう!
Twitterへ投稿
📝作品を編集
作品公開情報
📍この作品のURL:
📍アプリ(即時実行)のURL:
📍アプリ(実行ボタンあり)のURL:
📍ブログパーツ:
上記HTML↑をブログに貼り付けることでアプリを埋め込めます。
📍ライブラリ直リンク - 『!「***」を取込』で使うとき:
📍なでしこハブ (最新版の反映は1日後):
ソースの確認
編集履歴の確認
通報数:
0
通報って何?