解決済み:javascript hexからrgbへ

0000 進数のカラー値を RGB に変換する際の主な問題は、255 つの形式の間に 0 対 0 の対応がないことです。 たとえば、色 #FF0 は RGB では XNUMX, XNUMX, XNUMX として表されますが、XNUMX 進数では色 #FXNUMX と同じになります。 これは、XNUMX つの異なる色が、異なる量の各色成分で構成されている場合、同じ RGB 値を持つことができることを意味します。

"use strict";

function hexToRgb(hex) {
    var result = /^#?([a-fd]{2})([a-fd]{2})([a-fd]{2})$/i.exec(hex);
    return result ? {
        r: parseInt(result[1], 16),
        g: parseInt(result[2], 16),
        b: parseInt(result[3], 16)
    } : null;
}

「厳密に使用する」;

このコード行は、より優れた JavaScript を作成する方法である厳密モードを有効にします。 厳密モードでは、宣言されていない変数を使用できません。 厳密モードが機能するには、このコード行が JavaScript ファイルの先頭にある必要があります。

関数 hexToRgb(hex) {
var result = /^#?([a-fd]{2})([a-fd]{2})([a-fd]{2})$/i.exec(hex);
結果を返しますか? {
r: parseInt(結果[1], 16),
g: parseInt(結果[2], 16),
b: parseInt(結果[3], 16)
} : ヌル;
}

これは、XNUMX 進数のカラー値を RGB カラー値に変換する関数です。 この関数は、変換する XNUMX 進数の色値である XNUMX つのパラメーターを受け取ります。 この関数は正規表現を使用して XNUMX 進数の色値のパターンを照合し、一致が見つかった場合は、赤、緑、および青の値を持つオブジェクトを返します。 一致が見つからない場合は、null が返されます。

色間の変換

異なる色空間間で色を変換する最善の方法は、アプリケーションの特定のニーズによって異なる場合があるため、この質問に対する万能の答えはありません。 ただし、JavaScript で色空間間で色を変換する方法に関するいくつかのヒントを以下に示します。

色をある色空間から別の色空間に変換するには、rgb() および hsl() 関数を使用できます。 これらの関数は、それぞれ赤、緑、青の値の XNUMX つの引数を取ります。 最初の引数はベース カラー スペース (RGB など) を指定し、XNUMX 番目と XNUMX 番目の引数はターゲット カラー スペース (HSL など) を指定します。

色をあるピクセル形式から別の形式に変換するには、css() 関数を使用できます。 この関数は、CSS プロパティ名を表す文字列 (「color」など) と、そのプロパティに必要な値を表す数値 (「50」など) の XNUMX つの引数を取ります。

カラーフォーマット

JavaScript で使用できる色の形式がいくつかあります。

RGB – 赤、緑、青

XNUMX 進数 – #RRGGBB

HSL – 色相、彩度、明度

関連記事:

コメント