HEX 转 RGB 怎么转 - 颜色代码转换方法(附对照表)

1347 字
7 分钟
HEX 转 RGB 怎么转 - 颜色代码转换方法(附对照表)

🌟 HEX 和 RGB 是同一颜色的两种写法#

#ff0000 和 rgb(255, 0, 0) 说的是同一个红色。HEX 用十六进制表示,RGB 用三个十进制数表示红、绿、蓝三个通道的强度(0~255)。两者可以互相换算。

不想手算?用星点颜色格式转换输入任意一种,其余格式自动出来。


🧮 HEX 转 RGB 怎么算#

HEX 格式为 #RRGGBB,每两位一组:

  • RR → 红色(转成十进制)
  • GG → 绿色
  • BB → 蓝色

例子:#409eff

分组十六进制十进制
RR404×16 + 0 = 64
GG9e9×16 + 14 = 158
BBff15×16 + 15 = 255

结果:rgb(64, 158, 255)。

十六进制速记#

  • 09 表示 09;
  • AF 表示 1015;
  • 两位组合 = 高位×16 + 低位。

所以 ff = 15×16+15 = 255,80 = 8×16+0 = 128,9e = 9×16+14 = 158。


🧮 RGB 转 HEX 怎么算#

反过来:每个通道除以 16 取整得高位,余数得低位,再拼起来。

以 rgb(64, 158, 255) 为例:

通道十进制÷16商余HEX
R6464÷16=4 余 04040
G158158÷16=9 余 14914→E9e
B255255÷16=15 余 1515→F15→Fff

结果:#409eff。


📋 常见颜色对照表#

颜色HEXRGBHSL
黑#000000rgb(0, 0, 0)hsl(0, 0%, 0%)
白#ffffffrgb(255, 255, 255)hsl(0, 0%, 100%)
红#ff0000rgb(255, 0, 0)hsl(0, 100%, 50%)
绿#00ff00rgb(0, 255, 0)hsl(120, 100%, 50%)
蓝#0000ffrgb(0, 0, 255)hsl(240, 100%, 50%)
黄#ffff00rgb(255, 255, 0)hsl(60, 100%, 50%)
青#00ffffrgb(0, 255, 255)hsl(180, 100%, 50%)
品红#ff00ffrgb(255, 0, 255)hsl(300, 100%, 50%)
星点蓝#409effrgb(64, 158, 255)hsl(210, 100%, 63%)
紫#7c3aedrgb(124, 58, 237)hsl(262, 83%, 58%)
中灰#808080rgb(128, 128, 128)hsl(0, 0%, 50%)

🔤 简写与透明度#

  • 简写:#f00 等价于 #ff0000(每位重复一次);
  • 带透明度:#409eff80(8 位 HEX)≈ rgba(64, 158, 255, 0.5),末尾两位表示 alpha;
  • 范围:每个通道 0~255,超出要钳制。

🎯 该用哪种格式#

场景推荐
CSS 写色值HEX 或 RGB 都行,HEX 更短
需要透明度RGBA 或 8 位 HEX
按色相/亮度调色HSL 更直观
动态计算/叠加RGB 数值方便运算
印刷参考CMYK

💻 代码示例#

JavaScript#

function hexToRgb(hex) {
const h = hex.replace('#', '');
const full = h.length === 3 ? h.split('').map(c => c + c).join('') : h;
return {
r: parseInt(full.slice(0, 2), 16),
g: parseInt(full.slice(2, 4), 16),
b: parseInt(full.slice(4, 6), 16)
};
}
function rgbToHex({ r, g, b }) {
const toHex = (v) => v.toString(16).padStart(2, '0');
return '#' + toHex(r) + toHex(g) + toHex(b);
}

Python#

def hex_to_rgb(hex_str):
h = hex_str.lstrip('#')
if len(h) == 3:
h = ''.join(c * 2 for c in h)
return tuple(int(h[i:i+2], 16) for i in (0, 2, 4))
def rgb_to_hex(r, g, b):
return '#{:02x}{:02x}{:02x}'.format(r, g, b)

❓ 常见问题(FAQ)#

HEX 一定要 6 位吗? CSS 里支持 3 位简写(`#f00`)和 8 位带透明度(`#rrggbbaa`),标准完整写法是 6 位。
转换会丢精度吗? HEX ↔ RGB 是无损的;转 HSL/CMYK 等会因四舍五入有极小误差,属正常。
能批量转换吗? 可以,用[颜色格式转换](https://www.xingdian.net/app/color/convert/)的批量模式,一行一个颜色。
大小写有区别吗? CSS 不区分大小写,习惯上小写更常见。
RGB 和 RGBA 区别? RGBA 多一个 alpha 通道(0~1),表示透明度。
怎么转 HSL? 见 [HEX 转 HSL 怎么转](https://www.xingdian.net/blog/posts/hex-to-hsl/)。
为什么设计稿和代码颜色对不上? 可能是色彩配置(sRGB/P3)或透明度差异,用[颜色格式转换](https://www.xingdian.net/app/color/convert/)核对具体数值。
有现成工具吗? 有,[颜色格式转换](https://www.xingdian.net/app/color/convert/)支持输入任意格式自动换算并复制代码。

🔬 深入:sRGB、Gamma 与色彩空间#

HEX/RGB 默认在 sRGB 色彩空间。sRGB 有”伽马校正”:同样的数值差,在暗部的视觉变化比亮部更明显。所以:

  • 数值上”中间”的颜色(如 #808080),并不是视觉上的”中灰”;
  • 做渐变、混色时,直接在 sRGB 里插值,中段可能偏暗或发灰;
  • 追求自然过渡,可在 OKLab 等感知均匀空间插值(见颜色混合与色差)。

这也是为什么同一组数值,在不同色彩配置(sRGB / Display P3)下看起来会略有差异。


🧪 更多颜色对照#

颜色HEXRGB
天蓝#87ceebrgb(135, 206, 235)
番茄红#ff6347rgb(255, 99, 71)
珊瑚#ff7f50rgb(255, 127, 80)
钢青#4682b4rgb(70, 130, 180)
午夜蓝#191970rgb(25, 25, 112)
米色#f5f5dcrgb(245, 245, 220)
巧克力#d2691ergb(210, 105, 30)
深灰#333333rgb(51, 51, 51)

🛠 在项目里处理颜色#

  • CSS:直接用 HEX 或 rgb();
  • JavaScript 动态改色:用 RGB 数值加减更直观,再用 rgbToHex 输出;
  • 主题变量:把颜色集中为 CSS 变量,见 CSS 颜色变量与主题;
  • 可读性检查:改完色用对比度检测确认文字清晰。

🧾 十六进制换算速记#

十六进制十进制
000
4064
80128
9e158
c0192
ff255

记忆法:ff=255、80=128、40=64,其余按”高位×16+低位”推。


🔗 相关工具#


🧭 更多常见问题#

为什么同一个颜色有这么多写法? 历史与用途不同:HEX 简洁、RGB 便于计算、HSL 便于调色、CMYK 用于印刷。
颜色转换有在线工具吗? 有,[颜色格式转换](https://www.xingdian.net/app/color/convert/)输入任意格式自动换算。
怎么把颜色变浅或变深? 用[颜色调整](https://www.xingdian.net/app/color/adjust/)提高/降低明度即可。

💬 总结#

HEX 转 RGB 就是”每两位十六进制转十进制”;RGB 转 HEX 反过来。记不住公式没关系,用颜色格式转换输入即得结果,还能一键复制 CSS / SCSS / Tailwind 代码。

立即体验:访问 颜色格式转换

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

最后更新于 2026-09-13,距今已过 32 天

部分内容可能已过时

公告
🎉 已升级 2.0 版本,欢迎使用。
分类
标签
站点统计
文章
197
分类
24
标签
747
总字数
334,099
运行时长
0 天
最后活动
0 天前

目录