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 颜色代码。通过其免费、在线和安全的设计,任何人都可以使用该工具快速轻松地转换颜色。无论您是设计师、开发者还是仅需转换颜色的人,RGB 到 HSL 转换器都是完成工作的完美工具。
常见问题解答(FAQ)
什么是RGB到HSL转换器?
转换RGB到HSL的目的是什么?
什么是HSL颜色空间?
使用HSL颜色空间的优点有哪些?
如何使用RGB到HSL转换器工具?
我可以在移动设备上使用RGB到HSL转换器工具吗?
使用RGB到HSL转换器工具是否安全?
RGB和HSL颜色代码有什么区别?
我可以使用RGB到HSL转换器同时转换多个RGB颜色代码吗?
使用RGB到HSL转换器执行转换的次数是否有限制?
了解更多工具
Base64编码Base64解码图片转Base64PNG转Base64JPEG 转 Base64WebP转Base64转换器TIFF转Base64转换器BPM转Base64转换器GIF 转 Base64AVIF转换为Base64将APNG转换为Base64JSON 转 Base64XML 转 Base64 转换器YAML 转 Base64CSV 转 Base64将TSV转换为Base64二进制转Base64十六进制转Base64八进制转换为Base64HTML转Base64转换器CSS 转 Base64JavaScript 转 Base64ASCII 转 Base64文本转Base64Base64转JSON转换器Base64转XML转换器Base64转YAML转换器Base64转CSV将Base64转换为TSVBase64转二进制转换器Base64转十六进制Base64转八进制转换器Base64到HTML转换器Base64转CSS转换器Base64转Javascript转换器Base64转Ascii转换器Base64 转文本URL编码URL解码JSON URL 编码JSON URL解码HTML编码HTML 解码XML URL 编码XML URL 解码器