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는 (최대값 - 최소값) / (1 - abs(최대값 + 최소값 - 1))으로 계산됩니다.
- L을 계산하기 위해:
- L은 최대값과 최소값의 평균입니다.
RGB를 HSL로 변환하는 방법
RGB를 HSL로 변환하는 것은 쉽고 간단합니다. 다음은 단계별 안내입니다:
- 변환하고자 하는 RGB 색상 코드를 도구에 입력하거나 붙여넣기하세요.
- "변환" 버튼을 클릭하여 RGB 색상 코드를 HSL로 변환하세요.
- HSL 색상 코드가 화면에 표시됩니다.
- "복사" 버튼을 클릭하여 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로 변환하는 도구입니다.