RGBからHSLへ

RGB入力
サンプル
HSL出力

RGB から HSL への変換ツール:RGB カラーコードを HSL カラーコードに変換する

RGB カラーコードを HSL カラーコードに簡単かつ効率的に変換する方法をお探しですか?それなら RGB から HSL への変換ツールをお試しください。当オンラインツールは無料で、高速かつ安全であり、システムやソフトウェアの依存性は必要ありません。

特徴

  • 無料でオンラインツール
  • システムやソフトウェアの依存性はなし
  • クリアとコピーのボタン
  • サンプル入力
  • ローカルな計算によるデータセキュリティ

紹介

RGB から HSL への変換ツールは、RGB カラーコードを HSL カラーコードに変換するためのオンラインツールです。RGB(赤、緑、青)と HSL(色相、彩度、明度)は異なる色の表現方法であり、RGB から HSL への変換を簡単に行うことができます。

利点とメリット

RGB から HSL への変換ツールの主な利点は、RGB カラーコードを HSL カラーコードに変換するプロセスを簡素化することです。このツールは無料でオンラインで利用できるため、インターネット接続がある場所からアクセスすることができます。さらに、このツールは高速かつ安全であるため、RGB カラーコードを HSL カラーコードに変換する必要がある人にとって信頼性のある選択肢となります。

コアアルゴリズム

RGB から HSL への変換ツールで使用されているコアアルゴリズムは、直感的で理解しやすいものです。RGB カラーコードを HSL カラーコードに変換するために、簡単な計算手順が用いられます。RGB から HSL への変換のための式は以下の通りです:

  • H を計算するためには:
    • R、G、B の中で最大値と最小値を見つける。
    • H は以下の式を用いて計算されます:
    if (max == min) H = 0
    else if (max == R) H = 60 _ ((G - B) / (max - min))
    else if (max == G) H = 60 _ ((B - R) / (max - min)) + 120
    else if (max == B) H = 60 \* ((R - G) / (max - min)) + 240
    if (H < 0) H += 360
  • S を計算するためには:
    • もし最大値と最小値がともに 0 の場合、S は 0 となります。
    • それ以外の場合、S は(max - min) / (1 - abs(max + min - 1))として計算されます。
  • L を計算するためには:
    • L は最大値と最小値の平均値です。

RGB から HSL への変換方法

RGB から HSL への変換は簡単で直感的です。以下はステップバイステップのガイドです:

  1. ツールに変換したい RGB カラーコードを入力または貼り付けます。
  2. "変換"ボタンをクリックして RGB カラーコードを HSL に変換します。
  3. HSL カラーコードが画面に表示されます。
  4. "コピー"ボタンをクリックして HSL カラーコードをクリップボードにコピーします。

以上です!数回のクリックで、任意の RGB カラーコードを対応する HSL カラーコードに変換することができます。

Python

def rgb_to_hsl(r, g, b):
    r, g, b = r/255.0, g/255.0, b/255.0
    max_val = max(r, g, b)
    min_val = min(r, g, b)
    h, s, l = 0, 0, ((max_val + min_val) / 2)

    if max_val == min_val:
        h = s = 0
    else:
        diff = max_val - min_val
        s = diff / (2 - max_val - min_val)
        if max_val == r:
            h = (g - b) / diff + (g < b and 6 or 0)
        elif max_val == g:
            h = (b - r) / diff + 2
        else:
            h = (r - g) / diff + 4
        h /= 6

    return (int(h*360), int(s*100), int(l*100))

C

#include <stdio.h>

void ConvertRGBtoHSL(int r, int g, int b)
{
    float fr = r / 255.0f;
    float fg = g / 255.0f;
    float fb = b / 255.0f;
    float max = fr > fg ? (fr > fb ? fr : fb) : (fg > fb ? fg : fb);
    float min = fr < fg ? (fr < fb ? fr : fb) : (fg < fb ? fg : fb);
    float h = 0, s = 0, l = (max + min) / 2.0;
    if (max == min) {
        h = 0;
        s = 0;
    }
    else {
        float d = max - min;
        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
        if (max == fr) {
            h = (fg - fb) / d + (fg < fb ? 6 : 0);
        }
        else if (max == fg) {
            h = (fb - fr) / d + 2;
        }
        else if (max == fb) {
            h = (fr - fg) / d + 4;
        }
        h /= 6;
    }
    printf("HSL: %.0f, %.0f%%, %.0f%%\n", h * 360, s * 100, l * 100);
}

JavaScript

function rgbToHsl(r, g, b) {
  (r /= 255), (g /= 255), (b /= 255);
  let max = Math.max(r, g, b),
    min = Math.min(r, g, b);
  let h,
    s,
    l = (max + min) / 2;

  if (max == min) {
    h = s = 0;
  } else {
    let d = max - min;
    s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
    switch (max) {
      case r:
        h = (g - b) / d + (g < b ? 6 : 0);
        break;
      case g:
        h = (b - r) / d + 2;
        break;
      case b:
        h = (r - g) / d + 4;
        break;
    }
    h /= 6;
  }
  return [h * 360, s * 100, l * 100];
}

Java

public static void rgbToHsl(int r, int g, int b) {
    float fr = r / 255.0f;
    float fg = g / 255.0f;
    float fb = b / 255.0f;
    float max = Math.max(fr, Math.max(fg, fb));
    float min = Math.min(fr, Math.min(fg, fb));
    float h = 0, s = 0, l = (max + min) / 2;
    if (max == min) {
        h = 0;
        s = 0;
    } else {
        float d = max - min;
        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
        if (max == fr) {
            h = (fg - fb) / d + (fg < fb ? 6 : 0);
        } else if (max == fg) {
            h = (fb - fr) / d + 2;
        } else if (max == fb) {
            h = (fr - fg) / d + 4;
        }
        h /= 6;
    }
    System.out.printf("HSL: %.0f, %.0f%%, %.0f%%\n", h * 360, s * 100, l * 100);
}

PHP

function RGB2HSL($R, $G, $B) {
    $R = ($R / 255);
    $G = ($G / 255);
    $B = ($B / 255);

    $maxValue = max($R, $G, $B);
    $minValue = min($R, $G, $B);
    $delta = $maxValue - $minValue;

    $L = ($maxValue + $minValue) / 2;
    $H = 0;
    $S = 0;

    if ($delta == 0) {
        $H = 0;
        $S = 0;
    } else {
        if ($L < 0.5) {
            $S = $delta / ($maxValue + $minValue);
        } else {
            $S = $delta / (2 - $maxValue - $minValue);
        }

        $deltaR = ((($maxValue - $R) / 6) + ($delta / 2)) / $delta;
        $deltaG = ((($maxValue - $G) / 6) + ($delta / 2)) / $delta;
        $deltaB = ((($maxValue - $B) / 6) + ($delta / 2)) / $delta;

        if ($R == $maxValue) {
            $H = $deltaB - $deltaG;
        } else if ($G == $maxValue) {
            $H = (1 / 3) + $deltaR - $deltaB;
        } else if ($B == $maxValue) {
            $H = (2 / 3) + $deltaG - $deltaR;
        }

        if ($H < 0) {
            $H++;
        }
        if ($H > 1) {
            $H--;
        }
    }
    return [(int)($H * 360), (int)($S * 100), (int)($L * 100)];
}

結論

RGB から HSL への変換ツールは、簡単に使える効率的なツールです。無料でオンライン上で安全に使用することができ、デザイナーや開発者、色の変換が必要な方など、誰でも簡単に色を変換することができます。RGB から HSL への変換には、RGB から HSL への変換ツールが最適です。

よくある質問(FAQ)

他のツールについて知る