RGB转HSL转换器

填红、绿、蓝三个 0~255 的值,本页按标准算法算出色相 H、饱和度 S 与亮度 L,并附十六进制。所有换算都在浏览器本地完成,不上传任何颜色。

计算口径:先把 RGB 归一化到 0~1,求最大最小通道算亮度与饱和度,再按最大通道定位色相;演示值 (255,0,0) → H0 S100% L50%。

使用方法

RGB转HSL转换器把三个通道值换成更易调的 HSL,只要四步:

  1. 「红 R」「绿 G」「蓝 B」各填 0~255,演示值 255 / 0 / 0。
  2. 「小数位」选 S、L 保留几位(1 或 2),H 始终取整。
  3. 点「转换颜色」,四张卡片给 H、S、L 与十六进制;下方对照表默认 12 行可「加载更多」。
  4. 想还原演示值按「载入示例」:R255 G0 B0。

RGB转HSL转换器能解决什么

它把「屏幕值」翻成「人能调的值」,适合三类场景:

  • 设计师取色:从 RGB(255,0,0) 知道它是 H0 S100% L50% 的纯红,调亮度就能得到粉红。
  • 前端调参:CSS 里用 hsl() 比 rgb 更好微调明暗,本页直接给可粘贴的数值。
  • 配色直觉:H 决定色系、S 决定艳淡、L 决定明暗,对照表一眼看出规律。

本页不做的事:不把 HSL 自动转回 RGB(另有反向工具);不做色彩空间管理(如 CMYK、LAB);不处理带透明度的 RGBA。它只做 RGB→HSL 这一个方向。

原理和变量

① 用了哪个具体函数:核心是归一化后求最大最小通道,亮度 L=(max+min)/2,饱和度按 L 是否过半用不同分母,色相按哪个通道最大套对应公式,最后 H*360。

② 关键参数为什么这样取:用 0~255 是因为这是屏幕与 CSS 的通用整数表示;归一化到 0~1 才能让公式得到 0~100% 的 S、L。H 取整是因为色相本就是 0~360 的角度。

③ 遵循哪个标准:公式遵循 W3C CSS Color 的 HSL 定义(与绝大多数设计软件一致),浮点用 IEEE 754 双精度,结果可放心用于 CSS。

④ 输入怎么变成输出:演示 (255,0,0) 归一化 (1,0,0),max=1 min=0,L=0.5,S=1,max 是 R 故 H=0,得 H0 S100% L50%;十六进制 #FF0000。

⑤ 边界与阈值:三通道都限 0~255,负数或空提示具体字段;小数位限 1~2,默认 1。

⑥ 常见误用的正确解释:H 是角度不是比例,红是 0、绿是 120、蓝是 240;S、L 才是百分比。另一个误区是把 (0,0,0) 当黑色却期望有饱和度——纯灰黑 S 都是 0。

完整示例

保持演示值:红 255、绿 0、蓝 0,小数位 1。

  • 色相 H:0(度)
  • 饱和度 S:100%
  • 亮度 L:50%
  • 十六进制:#FF0000
  • 含义:这是最纯的正红,调高 L 变粉、调低 L 变暗红。

这四组数字与页面默认卡片、对照表第 1 行完全一致。

输入范围与对照表

RGB转HSL转换器的对照表列出 12 个常见 RGB 及其 HSL(由本页算法预计算):

常见 RGB 与 HSL 对照(按本页算法)
RGBH(度)S(%)L(%)十六进制
255, 0, 00.0100.050.0#FF0000
0, 255, 0120.0100.050.0#00FF00
0, 0, 255240.0100.050.0#0000FF
255, 255, 060.0100.050.0#FFFF00
0, 255, 255180.0100.050.0#00FFFF
255, 0, 255300.0100.050.0#FF00FF
192, 192, 1920.00.075.3#C0C0C0
128, 128, 1280.00.050.2#808080
255, 165, 038.8100.050.0#FFA500
34, 139, 34120.060.733.9#228B22
30, 144, 255209.6100.055.9#1E90FF
147, 112, 219259.659.864.9#9370DB

对照表能直观看出:红(0)→黄(60)→绿(120)→青(180)→蓝(240)→品红(300) 的色相递进。

结果边界和舍入

舍入位置:H 取整数,S、L 按「小数位」保留(默认 1 位);因为先 toFixed 再拼接,不会出现 50.0000001 这类浮点尾巴。

什么时候会拒绝计算:任一通道为负、为空、不是数字、或超 255 时,会给出具体提示后才继续;小数位不在 1~2 时提示。

单位和精度:H 单位永远是「度」(0~360),S、L 永远是百分比(0~100%)。十六进制由三通道按 16 进制补零拼成。

结果性质:这是标准色彩空间换算的理论值,未做显示器色彩管理;不同屏幕观感可能有差,数值本身一致。

常见问题

H 为什么是 0 而不是 100%?

H 是色相角度(0~360 度),红就是 0 度;S、L 才是百分比。把 H 当百分比是常见误解。

纯黑纯白的饱和度为什么是 0?

黑(0,0,0)和白(255,255,255)都没有色彩倾向,S 自然为 0;差别只在 L(黑 L0、白 L100)。

小数位能改吗?

能,S、L 限 1~2 位,默认 1;H 始终取整。设 2 时演示值 S 显示 100.00、L 显示 50.00。

能转回 RGB 吗?

本页只做 RGB→HSL。需要 HSL→RGB 请用站内的反向转换器,结果可互相对照。

透明度 RGBA 支持吗?

不支持,本页处理不透明的 RGB 三通道;带 alpha 的颜色请先忽略透明度再换算。

结果和 Photoshop 一样吗?

采用的 HSL 定义与 W3C/CSS 一致,和多数软件相同;个别软件若用 HSB/HSV 会有差别,注意区分。

我的颜色会被保存吗?

不会。全部在浏览器本地换算,刷新即清空,不发起任何网络请求。

能导出对照表吗?

能,点「复制对照表」拿 TSV,或「导出 CSV」(带 BOM)存成文件。

相关工具