RGB 转 HEX 转换器

快速将 rgb(r, g, b) 值转换为 HEX 颜色代码。这个转换器在处理 CSS、设计令牌时非常有用,或者当你想在设计工具和代码中对齐颜色时。

RGBHEX 格式中输入一个值,第二个字段会立即更新。转换是双向的,因此你可以从任何适合你工作流程的格式开始。

你还可以使用颜色选择器进行实验。当你移动滑块时,RGB 和 HEX 值会立即重新计算,这使得微调强调色、背景或语义令牌变得容易。

理解 RGB 颜色

RGB 模型将颜色描述为红、绿和蓝光的混合。每个组件的值在 0255 之间,其中 0 表示该通道关闭,255 表示全强度。

当这三个通道结合在一起时,它们形成了你在显示器、手机和电视上看到的颜色。例如,rgb(255, 255, 255) 是白色,rgb(0, 0, 0) 是黑色,rgb(255, 165, 0) 对应于明亮的橙色调。

RGB 值在动态界面中尤其实用,因为你可以以编程方式操作每个通道,生成颜色调色板,并创建在数值之间插值的过渡效果。

什么是 HEX 颜色代码?

HEX 颜色是以十六进制系统表示的相同 RGB 颜色。标准格式为 #RRGGBB,其中每对字符表示红、绿和蓝通道的十六进制值。

HEX 使用的值范围是 00FF,而不是从 0 到 255 的十进制数字。数字 AF 代表十进制数字 10 到 15。浏览器解析字符串,将其分成三对,转换每一对为十进制,然后渲染相应的 RGB 颜色。

这种紧凑的格式在 CSS、设计工具和样式指南中广泛使用,因为它简短、易于复制,并且作为主色、次色和语义颜色的令牌效果良好。

RGB 转 HEX 转换公式

rgb(r, g, b) → #RRGGBB

RR = dec_to_hex(r)
GG = dec_to_hex(g)
BB = dec_to_hex(b)

// Helper:
dec_to_hex(x) = to_hex(x).padStart(2, "0")

要将 RGB 转换为 HEX,你需要将每个通道值(从 0 到 255)转换为两位十六进制字符串,然后将三个部分连接在一起,前面加上 #

// rgb(79, 163, 194) 的示例
r = 79  → 4F
g = 163 → A3
b = 194 → C2

#4FA3C2

如果你想复习十六进制数字是如何工作的或如何进行基数转换,可以打开 <a href="/number-systems" rel="noopener noreferrer">数字系统指南</a>。

RGB 转 HEX 转换的逐步工作原理

RGB 值以三个十进制数字的形式写出。在转换过程中,这些数字中的每一个都被转换为两位 HEX 片段,然后组合成一个单一的颜色代码。

rgb(26, 43, 60)
↓    ↓    ↓
[26, 43, 60] → #1A2B3C

以下是 rgb(26, 43, 60) 的详细分解:

  • 步骤 1 — 分离三个通道:
    [26] [43] [60]
  • 步骤 2 — 将每个值从十进制转换为 HEX:

    你可以反复将十进制值除以 16,或者使用内置的辅助函数。每一步的余数映射到一个 HEX 数字(0–9, A–F)。

    26 → 1A
    43 → 2B
    60 → 3C

    在这个例子中,所有三个通道都在 0–255 之间,因此每个通道都变成了一个两字符的 HEX 片段。

  • 步骤 3 — 连接各部分并在前面加上 # 符号:
    #1A2B3C

同样的方法适用于任何有效的 RGB 三元组:独立转换每个组件,然后将结果连接成一个单一的 HEX 代码。

在 CSS 中选择 RGB 和 HEX

RGB 和 HEX 描述的是相同的颜色,但根据情况,一个格式可能比另一个更方便。选择通常取决于你在项目中如何读取、编辑和共享颜色值。

当 RGB 更实用时

  • 显式通道控制: 红、绿和蓝的值在函数调用中是可见的,这对于动画或算法生成颜色非常有用。
  • 使用 JavaScript 微调: 在代码中,数值通道易于增加、减少或限制。
  • 处理透明度: rgba() 变体在保持相同结构的同时添加了 alpha 参数,这对于覆盖和阴影非常方便。

当 HEX 更合适时

  • 紧凑表示法: #1A2B3C 这样的短字符串适合用于令牌、设计系统和共享调色板。
  • 与设计工具对齐: 大多数图形编辑器默认以 HEX 显示和导出颜色,因此你可以在不进行额外转换的情况下复制值。
  • 可读的预设: 当你维护一个主要、次要和中性色的列表时,HEX 代码易于扫描。

总结

当你需要直接在代码中操作颜色通道或不透明度时,使用 RGB/RGBA。当你想要一个简洁、稳定的设计令牌值时,或当你主要从设计工具中复制颜色时,优先选择 HEX。你可以在不失去精度的情况下随时进行转换。

处理 CSS 中颜色的实用技巧

现代 CSS 接受多种颜色格式,因此值得在项目中选择一到两种作为标准。这可以保持设计令牌的一致性,并使样式更易于维护。

选择主要颜色格式

  • HEX:作为设计系统和文档的基础格式很好。
  • RGB/RGBA:在效果、覆盖和状态过渡中方便使用,尤其是当不透明度很重要时。
  • HSL/HSLA:当你想以可预测的方式调整色调、饱和度或亮度时非常有用。

谨慎使用简写

  • #RGB 而不是 #RRGGBB:只有当每对由相同数字组成时,三字符形式才有效。例如,#FA3 扩展为 #FFAA33

使用 Alpha 写 HEX

  • #RRGGBBAA:这是包含不透明度的八字符 HEX 格式。最后两位数字定义 alpha 通道,从 00(透明)到 FF(完全不透明)。
  • 如果你已经使用 HEX 令牌,带有 alpha 的 HEX 让你在需要透明度的地方保持相同的样式。

常见陷阱

  • 在一个文件中混合多种格式:坚持使用少量格式可以使主题和重构更简单。
  • 直接动画化 HEX:为了更平滑的过渡,在关键帧中切换到 rgb()rgba()hsl()
  • 忘记对比度:在定义颜色时,始终检查在浅色和深色背景上的可读性。

通过对颜色格式的一致处理和清晰的令牌策略,样式保持可读、可扩展,并在设计演变时更易于重构。

RGB 转 HEX 转换表

以下参考表显示了几种常见颜色的 RGB 和 HEX 形式。你可以在处理主题、布局或品牌调色板时快速查阅。

RGB 转 HEX 参考表
描述HEXRGB
白色#FFFFFFrgb(255, 255, 255)
黑色#000000rgb(0, 0, 0)
红色#FF0000rgb(255, 0, 0)
绿色#00FF00rgb(0, 255, 0)
蓝色#0000FFrgb(0, 0, 255)
黄色#FFFF00rgb(255, 255, 0)
青色#00FFFFrgb(0, 255, 255)
品红#FF00FFrgb(255, 0, 255)
灰色 1#111111rgb(17, 17, 17)
灰色 2#333333rgb(51, 51, 51)
灰色 3#555555rgb(85, 85, 85)
灰色 4#777777rgb(119, 119, 119)
灰色 5#999999rgb(153, 153, 153)
灰色 6#CCCCCCrgb(204, 204, 204)
浅灰色#F0F0F0rgb(240, 240, 240)
UI 灰色#E0E0E0rgb(224, 224, 224)
深色 UI 灰色#1A1A1Argb(26, 26, 26)
深红色#800000rgb(128, 0, 0)
深绿色#008000rgb(0, 128, 0)
深蓝色#000080rgb(0, 0, 128)
橙色#FFA500rgb(255, 165, 0)
紫色#800080rgb(128, 0, 128)
青绿色#008080rgb(0, 128, 128)

对于任何其他 RGB 组合,你可以使用页面顶部的转换器获得确切的 HEX 代码。

常见问题:RGB 转 HEX

  • 为什么 RGB 值总是在 0 到 255 之间?

    每个 RGB 通道以 8 位值存储。八位可以表示 256 种不同的状态,对应于从 0255 的范围。

  • 如果值超出此范围会发生什么?

    低于 0 的值被视为 0,而高于 255 的值被限制为 255。为了获得一致的结果,在将 RGB 输入转换为 HEX 之前,请验证其有效性。

  • RGB 转 HEX 转换会改变实际颜色吗?

    不会。RGB 和 HEX 只是相同颜色数据的两种表示形式。只要每个通道保持在 0–255 之间,转换就是无损的。

  • 某些 RGB 值在 HEX 中是否有简写形式?

    是的。如果每对 HEX 数字由相同字符组成,你可以将 #RRGGBB 压缩为 #RGB。例如,#FF00AA 变为 #F0A

  • 在从 RGB 转换时如何表示透明度?

    你可以继续在 CSS 中使用 rgba(),或者切换到扩展的 HEX 格式 #RRGGBBAA,其中最后两位数字表示 alpha 通道。

相关转换器: