RGB → 色相H 方式の違い

色変換

2種類の方式

 状態:-  閲覧数:3,209  投稿日:2016-06-02  更新日:2016-06-19
一覧表
基準 最小値基準 最大値基準
R 60 × ((B - G) ÷ (MAX - MIN)) + 180 60 × ((G - B) ÷ (MAX - MIN))
G 60 × ((R - B) ÷ (MAX - MIN)) + 300 60 × ((B - R) ÷ (MAX - MIN)) + 120
B 60 × ((G - R) ÷ (MAX - MIN)) + 60 60 × ((R - G) ÷ (MAX - MIN)) + 240
RGB最大値基準
色相、彩度、明度の計算方法
RGBとHSLの相互変換ツールと変換計算式
CSS の色指定は、HSL を使っていこう

RGB最小値基準
HLS色空間

RGBからHSVのHを求める計算式。最大値Rの時、B-GしたりG-Bしたりしている理由

 閲覧数:642 投稿日:2016-06-10 更新日:2016-06-19

最大値Rの時


HLS色空間 - Wikipedia ではB-G
RGBとHSLの相互変換ツールと変換計算式 ではG-B
・何れも同じ結果が求まる
・両者の違いは何?

疑問
・そもそも「B-G」「G-B」にはどのような意味がある?
・「B-G」計算結果は何を意味している???
・二番目のリンクではマイナスになる可能性もあると書かれているが、+部分が60ずれていることと関係する?
・60ずれているとなぜ逆から引き算するの?
・Hは360°で表され60°周期でRGBの何れかの値が増減していくから??
前者リンクはRGBいずれかが最小値の場合の計算で、
後者は最大値の場合の計算です。
両者の数式で加算している角度(オフセット)の違いは60°ではなくて180°
(ちょうど円周上の反対側になります)

RGBの最大値をオフセットとして見るか、最小から見るかで
色を見る角度も逆になるので引き算も逆になります。

円周状の空間の位置ですから
マイナスになっても360°足してプラスにできます


RGB最大値基準

 閲覧数:662 投稿日:2016-06-19 更新日:2016-06-19

色相H範囲 / 0°~360°


Rが最大値の場合
・色相 H = 60 × ((G - B) ÷ (MAX - MIN))

Gが最大値の場合
・色相 H = 60 × ((B - R) ÷ (MAX - MIN)) +120

Bが最大値の場合
・色相 H = 60 × ((R - G) ÷ (MAX - MIN)) +240


色相H範囲 / 0~1


上記を360°で割る

Rが最大値の場合
・H = ((G - B) / (MAX - MIN)) / 6;

Gが最大値の場合
・H = ((B - G) / (MAX - MIN)) / 6 + 1 / 3;

Bが最大値の場合
・H = ((R - G) / (MAX - MIN)) / 6 + 2 / 3;


function _calcHueNorm(r, g, b) {
 var color_arr = [r, g, b];
 var H = 0.0;

 // 等しいとき
 if ((R == G) && (G == B)) {
   H = 0.0;
 } else if ((R >= G) && (R >= B)) {
   // R最大の場合
   H = ((G - B) / (MAX - MIN)) / 6;
 } else if ((G >= R) && (G >= B)) {
   // G最大の場合
   H = ((B - G) / (MAX - MIN)) / 6 + 1 / 3;
 } else if ((B >= R) && (B >= G)) {
   // B最大の場合
   H = ((R - G) / (MAX - MIN)) / 6 + 2 / 3;
 }

 // 求めたhueが 0以下なら1足す
 if (H < 0) {
   H += 1;
 }
 return H;
}

function _calcHue(r, g, b) {
 return Math.round(this._calcHueNorm(r, g, b) * 360);
}



Gが最大値の場合


B-G or B-R
・B-GをB-Rへ変更しても結果は同じ
・理由不明

B-GとB-Rの違いは、どこを基準とした長さの比率を求めるか
・それぞれ結果は異なると思うが、そうではない?

考え方A.長さの比率で角度60°を分割 / R≧B≧G


今後の方針


これ以上は理解できそうにないので、コードを正として場合分けしていく
RGB → 色相H 計算方式の違い


RGB → 色相H … 最大値基準 × 図形 の考え方

RGB → HSL 勘違いしていたかも



週間人気ページランキング / 2-20 → 2-26
順位 ページタイトル抜粋 アクセス数
1 Chromeデベロッパーツールで、スマホソースコードを確認したいが、USBデバッグ機能をどうしても有効にすることが出来ない | モバイルデザイン(デザイン) 18
2 「bgcolor」「background-color」「background」の違い | CSS 5
2 RGBの種類 / ビットカラー | RGB(色) 5
2 RGB ⇔ Lab | 色変換(色) 5
3 「属性」「プロパティ」「アトリビュート」の違い | CSS 4
4 画像縦横比の問題 | 画像 3
4 効果を打ち消すスタイルシート | CSS 3
4 色モデルイメージ図 | 色変換(色) 3
4 「Font Awesome 4」と「Font Awesome 5」の違い(Font Awesome バージョン4からのアップグレード) | Font Awesome(フォント) 3
4 キャラクター無料作成ジェネレーター / FLASH / オンラインサービス | イラスト参考(デザイン) 3
4 「東京都」のカラーコード取得は難しい | カラーコード(色) 3
5 画面キャプチャ 2022 年 | Chrome 拡張機能 2
5 CSSだけで、任意の要素に配置した画像を画面一杯に表示することは、基本的には出来ない。「img src」「背景画像」「div要素」何れの場合でも。可能なのは、特殊な要件が重なった場合だけ | CSS 2
5 フォントアイコン表示不具合の原因は重複読込+α | フォント 2
5 「Font Awesome」で「ダウンロードしたSVGを直接表示」する方法 2
5 Chrome ブラウザで画像の DataURI を取得 | Google Chrome(ブラウザ) 2
5 FontAwesomeでアイコンが□(四角)になって表示されない Forbidden  | Font Awesome(フォント) 2
5 「レイヤー」+「レイヤー効果」をコピーして新規psdにペースト | Photoshop 2
5 「Fireworks」後継として「Gravit Designer」を使用していくことを一度は決定したが、2022 年時点で入手可能なソフトウェアは日本語入力未対応  | Gravit Designer(ソフトウェア) 2
5 GIMPで「レイヤーとして開く」を選択した画像、の位置情報(x,y)を表示させる方法が分からない | GIMP 系(ソフトウェア) 2
2026/2/27 5:05 更新