十六进制转RGB

把 #ff5733 这样的颜色代码转成 rgb(255,87,51),也能反向把 rgb 转回十六进制。默认示例是 #ff5733,打开就能看到三通道分量与色块。

可填 ff5733、#FF5733、#f00、#f00c(含 alpha)。裸按 Enter 立即转换。
反向转换:填 255,87,51 会回推出 #ff5733。裸按 Enter 立即转换。
关掉后八位十六进制只取前六位,alpha 被丢弃。

提示:两个输入框是单行控件,裸按 Enter 立即转换;改一边会同步另一边。结果区用 role="alert" 标出。

常见颜色十六进制与 RGB 对照

名称十六进制RGB色块
黑色#000000rgb(0,0,0)
白色#FFFFFFrgb(255,255,255)
红色#FF0000rgb(255,0,0)
绿色#00FF00rgb(0,255,0)
蓝色#0000FFrgb(0,0,255)
黄色#FFFF00rgb(255,255,0)
青色#00FFFFrgb(0,255,255)
品红#FF00FFrgb(255,0,255)
灰色#808080rgb(128,128,128)
橙色#FFA500rgb(255,165,0)
粉色#FFC0CBrgb(255,192,203)
棕色#A52A2Argb(165,42,42)
紫色#800080rgb(128,0,128)
青绿#008080rgb(0,128,128)

颜色对照表给出常见颜色的十六进制与 RGB 对应;你自己的色值以 result 区为准,表里只是参考样例。

使用方法

  1. 在「十六进制颜色」填色值(默认 #ff5733,可带或不带 #、大小写随意、支持 #f00 简写)。
  2. 在「RGB 颜色」填分量(默认 255,87,51,支持 r,g,b 或 r,g,b,a),可做反向转换。
  3. 选「含 alpha 处理」:开时支持 #RRGGBBAA 与 rgba;关时只取前六位 RGB。
  4. 点「转换」或裸按 Enter,结果区显示三通道分量、十六进制、rgba 与实时色块。
  5. 点「复制结果」把 rgb 字符串存到剪贴板;「导出颜色表 CSV」把 14 行常见颜色下载成带 BOM 的表格。
  6. 结果区还会实时显示一个色块,方便你直观确认颜色是否正确,不必只凭数字去想象;改任意一边输入框,色块与另一侧都会同步更新。

这个十六进制转RGB工具能解决什么问题

一是统一两种颜色写法。设计稿常用 #ff5733,CSS 里有时要 rgb(255,87,51),Android、iOS 又各自一套。十六进制转RGB工具在两种写法间无损互转,复制粘贴即用,不必再心算 0xff 等于几。调接口或写主题配置时,前后端常常各用一种记法,本工具能省去反复打开取色器的麻烦,把核对成本降到一次粘贴。

二是把简写和大小写都吃掉。#f00 是 #ff0000 的缩写、#F00 也是、ff0000 没 # 还是它。人工核对容易看花眼,本工具一律归一展开,输入哪种都得到同一组分量。

三是把 alpha 通道也管上。半透明色写成 #RRGGBBAA(后两位是透明度),CSS 对应 rgba(r,g,b,a)。开「含 alpha」后,八位十六进制能完整往返,关掉则只看 RGB,避免你把透明度误当颜色。

本页十六进制转RGB工具不做这些事:不把颜色转成 HSL/HSV(那是另一类工具);不取色(需要屏幕吸管);也不预测配色是否好看。它只负责 # 与 rgb 两种记法之间的精确换算。

转换原理:简写展开、每通道两位,以及 alpha 怎么来

三位简写每位重复一次。#f00 不是「每位乘 15」,而是 f→ff、0→00、0→00,展开成 #ff0000。同理 #abc → #aabbcc。这是 CSS 规范定义的缩写规则,本工具严格照此展开,不会算成别的。

每通道两位十六进制,范围 0~255。十六进制的 00 是十进制 0、ff 是 255,正好对应一个颜色通道的 256 级。解析时把两位十六进制用 parseInt(pair, 16) 转成十进制:ff→255、57→87、33→51,于是 #ff5733 = rgb(255,87,51)。

大小写与 # 前缀都容错。正则先去掉开头的 #、整体转小写,再判断长度是 3/4/6/8。所以 FF5733、#ff5733、ff5733 都归一为同一串,之后按长度分流到简写或六位逻辑。

八位十六进制末两位是 alpha。#RRGGBBAA 里 AA 是透明度,转成 rgba 的 a 要除以 255:AA(170) → 170/255 ≈ 0.667。反向从 rgba(…,a) 回十六进制时,a×255 四舍五入再转两位十六进制。关掉「含 alpha」时,八位只取前六位,alpha 被丢弃。

反向从 RGB 回十六进制。每个分量用 toString(16) 转十六进制,不足两位前补 0:255→ff、87→57、51→33,拼成 ff5733 再补上 #。这一路径同样支持 alpha,保证 rgb→hex→rgb 往返一致。

为什么是六位而不是别的长度。十六进制逢 16 进位:0-9 之后接 a(10)、b(11)、c(12)、d(13)、e(14)、f(15)。两位一组表示 16×16=256 个值,正好覆盖一个 8 位颜色通道的全部强度等级;三个通道共六位,能精确描述约 1677 万种颜色。这也是屏幕、浏览器与图像格式通用的颜色深度,所以六位十六进制几乎与「一个颜色」画等号。

完整示例(默认输入实测)

默认输入 #ff5733,逐项核对:

简写验证:在十六进制框填 #f00,展开为 #ff0000,输出 rgb(255,0,0),色块纯红——和对照表里「红色」那行吻合。

输入范围与对照表

对照表是「参考样例」而非「转换结果」,所以它与上方结果区是两个独立信息源:结果区告诉你这段具体是什么色,对照表帮你快速查常用色。

边界与精度说明

关于 CSS 的百分比写法。CSS 还允许 rgb(100%,34%,20%) 这种百分比记法,本工具只输出 0~255 的整数形式。若你的环境要求百分比,把每个分量除以 255 再乘 100 即可自行换算(如 87÷255≈34%),换算逻辑等价,只是表达不同。现代浏览器也支持带有透明度的 rgb(255 87 51 / 0.5) 空格写法,本工具则统一用逗号分隔并显式给出 alpha,便于复制粘贴。

常见问题

#f00 为什么等于 #ff0000 而不是别的?

CSS 缩写规则是「每位重复一次」,不是乘 15:f→ff、0→00、0→00,于是 #f00 展开为 #ff0000(纯红)。同理 #abc → #aabbcc。本工具严格照此展开,所以你看到的红色和对照表一致。

大写 #FF5733 和小写 #ff5733 结果一样吗?

一样。本工具在解析前先去掉 # 并把整个串转成小写,再按长度分流。所以 FF5733、#ff5733、ff5733 都归一为同一组分量 rgb(255,87,51),大小写与有没有 # 都不影响结果。

八位 #RRGGBBAA 的 AA 是什么?

末两位 AA 是透明度(alpha),对应 CSS 的 rgba(r,g,b,a) 里那个 0~1 的 a。换算公式是 a = AA/255:AA 为 ff(255) 时 a=1(不透明),为 80(128) 时 a≈0.502(半透明)。关掉「含 alpha」后八位只取前六位,透明度被丢弃。

为什么填 5 位十六进制报错?

因为合法长度只有 3(简写)、4(简写+alpha)、6(标准)、8(标准+alpha)。5 位既不是有效缩写也不是有效全写,本工具会直接拒绝并指出长度不对,而不会擅自猜测你的意图,避免给出错误颜色。

RGB 填小数或 300 会怎样?

都会被拒绝。每个分量必须是 0~255 的整数:填 300 超出上限、填 12.5 不是整数、填 abc 不是数字,都会得到具体提示。本工具不静默截断,避免你以为拿到了正确颜色其实被改过。

rgb 转回十六进制会丢精度吗?

不会。每个分量是 0~255 整数,toString(16) 得到两位十六进制,不足补 0,这与 parseInt(...,16) 互为逆运算,往返完全一致。唯一可能偏差只在 alpha 的小数舍入上,RGB 三通道是精确的。

这个工具能转 HSL 吗?

本页只做 # 与 rgb 两种记法的互转,不处理 HSL/HSV。若你需要色相、饱和度那套表达,请使用专门的 HSL 转换工具。混用会破坏「精确往返」这一前提。

转换结果会被上传吗?

不会。所有清洗、解析与拼接都在你当前浏览器里完成,页面不发起任何网络请求,也不写 Cookie 或 localStorage。你在开发者工具的 Network 面板里转换几次,面板始终是空的。

相关工具