通过MCP连接 →

输入计算

数学公式

广告

结果

RGB 颜色
rgb(102, 153, 204)
102
绿 153
204

什么是 HSL 转 RGB 转换器?

HSL 是色相(Hue)、饱和度(Saturation)和亮度(Lightness)的缩写,是一种更符合直觉的颜色描述方式:色相是色环上的角度(0–360°),饱和度表示颜色的鲜艳程度(0–100%),亮度则代表颜色的明暗(0–100%)。RGB 用红(Red)、绿(Green)、蓝(Blue)三个通道来描述同一种颜色,每个通道取值 0 到 255,这也是屏幕显示、CSS 样式和图像文件普遍采用的格式。这款转换器能把一个 HSL 颜色精确换算成对应的 RGB 数值。

HSL 颜色圆柱体,色相绕圆周、饱和度向外缘、明度沿轴向显示
HSL 颜色模型:色相为角度,饱和度为离轴距离,明度沿垂直轴。

使用方法

输入以度为单位的色相、以百分比表示的饱和度,以及以百分比表示的亮度。计算器会立即给出对应的 rgb(r, g, b) 三元组,并显示一个实时预览色块,方便你直观确认颜色效果。

公式详解

首先把 \(S\) 和 \(L\) 转换为小数(0–1)。彩度(Chroma)表示颜色的鲜艳度:

$$C = (1 - |2L - 1|)\cdot S$$

中间分量为

$$X = C\,(1 - |(H/60 \bmod 2) - 1|)$$

而匹配值

$$m = L - \tfrac{C}{2}$$

则把整体平移到正确的亮度。色相被划分为六个 60° 的扇区,每个扇区按特定顺序把 \(C\)、\(X\) 和 \(0\) 分配给 \(R\)、\(G\)、\(B\) 三个通道。最后给每个分量加上 \(m\),再乘以 255(四舍五入取整)。

$$(R,G,B) = \big( (R_1+m)\cdot 255,\; (G_1+m)\cdot 255,\; (B_1+m)\cdot 255 \big)$$

实例演算

以 HSL(210°, 50%, 60%) 为例:\(S = 0.5\),\(L = 0.6\)。\(C = (1 - |1.2 - 1|) \times 0.5 = (1 - 0.2) \times 0.5 = 0.4\)。\(H/60 = 3.5\),所以 \(X = 0.4 \times (1 - |3.5 \bmod 2 - 1|) = 0.4 \times (1 - 0.5) = 0.2\)。\(m = 0.6 - 0.2 = 0.4\)。落在第 3 个扇区(\(3 \le H/60 < 4\)),得到 \((R',G',B') = (0, X, C) = (0, 0.2, 0.4)\)。各加上 \(m\):

$$(0.4, 0.6, 0.8) \times 255 = (102, 153, 204)$$
并排显示的输入 HSL 值与其转换后的 RGB 输出色样
转换示例展示了输入的 HSL 值及其转换后的 RGB 颜色样本。

常见问题

为什么我的 RGB 数值是取整后的?RGB 各通道都是 0 到 255 之间的整数,因此换算出的数值需要四舍五入到最接近的整数。

饱和度为 0% 会得到什么?完全去饱和的颜色是一种灰色,其数值只取决于亮度——此时 RGB 三个通道的值完全相等。

如果输入超过 360 的色相,会自动取模吗?会的。色相会对 360 取模,所以 370° 等同于 10°。

最后更新: