← 返回博客

如何将 HEX 颜色转换为 RGB

2026-04-02 · 5 分钟阅读

← 返回博客

如何将 HEX 颜色转换为 RGB

· 5 分钟阅读

为什么需要 HEX 转 RGB

HEX 颜色代码(如 #FF5733)在网页设计中非常普遍,而 RGB 格式(如 rgb(255, 87, 51))在某些场景下更为直观或必要。当你需要在 CSS 中添加透明度、在 JavaScript 中动态计算颜色插值,或将设计稿颜色传递给打印工作流时,转换为 RGB 往往是必要步骤。

手动转换方法

HEX 转 RGB 的核心在于将十六进制字符对转换为十进制数。步骤如下:

  1. 去掉 # 号,得到 6 位十六进制字符串
  2. 将字符串分为三组,每组 2 个字符(RR、GG、BB)
  3. 将每组从十六进制转换为十进制数
HEX: #FF5733

RR = FF → (15 × 16) + 15 = 255
GG = 57 → (5  × 16) + 7  = 87
BB = 33 → (3  × 16) + 3  = 51

RGB: rgb(255, 87, 51)

十六进制字母对照表

十六进制使用字母 A–F 来代表 10–15 的数值。在手动计算时,记住以下对应关系:A=10,B=11,C=12,D=13,E=14,F=15。

Example: #1A2B3C
R = 1A → (1 × 16) + 10 = 26
G = 2B → (2 × 16) + 11 = 43
B = 3C → (3 × 16) + 12 = 60
RGB: rgb(26, 43, 60)

在代码中实现 HEX 转 RGB

在 JavaScript 中,可以使用 parseInt 配合基数 16 来完成转换:

function hexToRgb(hex) {
  // Remove # if present
  hex = hex.replace(/^#/, '');

  // Handle 3-character shorthand
  if (hex.length === 3) {
    hex = hex.split('').map(c => c + c).join('');
  }

  const r = parseInt(hex.substring(0, 2), 16);
  const g = parseInt(hex.substring(2, 4), 16);
  const b = parseInt(hex.substring(4, 6), 16);

  return { r, g, b };
}

// Usage
hexToRgb('#FF5733'); // { r: 255, g: 87, b: 51 }

转换 3 位简写 HEX

当遇到简写形式(如 #F53)时,先将每个字符复制一份展开为 6 位(#FF5533),再按标准方法转换。在代码中,可以对每个字符 c 执行 c + c 操作来完成展开,如上面 JavaScript 示例中所示。

CSS 中的 rgba() 格式

一旦拥有了 RGB 值,就可以轻松地在 CSS 中使用 rgba() 函数添加透明度。透明度值(alpha)范围为 0(完全透明)到 1(完全不透明):

/* Fully opaque */
background: rgb(255, 87, 51);

/* 50% transparent */
background: rgba(255, 87, 51, 0.5);

/* 20% transparent overlay */
background: rgba(255, 87, 51, 0.2);

这是 HEX 格式无法直接做到的事情(尽管现代 CSS 支持 8 位 HEX 透明度),因此在需要透明效果的场景中,RGB/RGBA 是更常用的选择。

使用在线工具快速转换

对于日常设计工作,手动计算并不高效。我们的在线颜色选择工具可以即时完成 HEX 到 RGB 的转换,只需输入任意 HEX 代码,工具会立即显示对应的 RGB、HSL 等多种格式的值,方便复制使用。

立即尝试在线工具,无需安装,免费使用。

打开工具 →

立即免费使用相关工具

免费使用 →