📝 博客 · 2026-08-02 · ⏱ 17 分钟

在线取色器:HEX/RGB/HSL

在线取色器教程:从图片取色、HEX/RGB/HSL 互转、配色方案生成、颜色对比度检查,前端设计师必备。

取色器颜色转换在线工具前端开发

在线取色器:HEX/RGB/HSL

设计网页选什么主色、看到海报颜色想知道色值、PS 取色功能在另一个屏幕——在线取色器一键解决。本文详解取色工具。

52tool 在线取色器

工具地址:颜色选择器

功能

实战 1:选择颜色

取色器:可视化选择
HEX:#3498DB
RGB:52, 152, 219
HSL:204°, 70%, 53%

实战 2:从图片取色

  1. 上传图片
  2. 鼠标点击图片任意位置
  3. 显示该位置颜色 HEX 值

实战 3:颜色转换

输入 HEX #FF5733,输出:

RGB:255, 87, 51
HSL:11°, 100%, 60%
HSV:11°, 80%, 100%
CMYK:0%, 66%, 80%, 0%

颜色格式详解

HEX(十六进制)

最常用的网页颜色格式:

#FF5733
││ ││ ││
││ ││ │└─ 蓝色
││ ││ └── 绿色低 4 位
││ │└── 绿色高 4 位
││ └── 红色低 4 位
│└── 红色高 4 位
└── # 前缀

RGB(红绿蓝)

RGB(255, 87, 51)

每个值 0-255。表示显示器发光强度。

RGBA(带透明度)

RGBA(255, 87, 51, 0.5)

最后值 0-1 是透明度(0 完全透明,1 完全不透明)。

HSL(色相饱和度亮度)

HSL(11, 100%, 60%)

HSL 更符合人类直觉,调色方便。

HSV/HSB(色相饱和度明度)

HSV(11, 80%, 100%)

类似 HSL 但 V(明度)和 L(亮度)定义不同。

CMYK(青品黄黑)

CMYK(0%, 66%, 80%, 0%)

印刷四色,每个值 0-100%。

各格式适用场景

格式适用场景
HEXCSS、HTML
RGBCSS、Canvas
RGBACSS 带透明度
HSL设计调色
HSVPS、图像软件
CMYK印刷

CSS 颜色用法

颜色值

/* HEX */
color: #3498db;
color: #3498db80;  /* 带透明度 */

/* RGB */
color: rgb(52, 152, 219);
color: rgba(52, 152, 219, 0.5);

/* HSL */
color: hsl(204, 70%, 53%);
color: hsla(204, 70%, 53%, 0.5);

/* 颜色名 */
color: blue;
color: transparent;

/* currentColor */
color: currentColor;  /* 继承自身颜色 */

/* CSS 变量 */
:root {
  --primary: #3498db;
}
color: var(--primary);

渐变

background: linear-gradient(to right, #3498db, #e74c3c);
background: linear-gradient(45deg, hsl(204, 70%, 53%), hsl(0, 80%, 60%));

阴影

box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);

颜色转换公式

HEX → RGB

#FF5733
FF → 255
57 → 87
33 → 51
RGB(255, 87, 51)

RGB → HEX

RGB(255, 87, 51)
255 → FF
87 → 57
51 → 33
#FF5733

RGB → HSL

R, G, B 归一化到 0-1
计算 max, min
L = (max + min) / 2
if max == min:
    H = S = 0
else:
    d = max - min
    S = d / (2 - max - min) if L > 0.5 else d / (max + min)
    if max == R: H = (G - B) / d + (6 if G < B else 0)
    if max == G: H = (B - R) / d + 2
    if max == B: H = (R - G) / d + 4
    H *= 60

HSL → RGB

if S == 0:
    R = G = B = L
else:
    q = L * (1 + S) if L < 0.5 else L + S - L * S
    p = 2 * L - q
    R = hueToRgb(p, q, H + 1/3)
    G = hueToRgb(p, q, H)
    B = hueToRgb(p, q, H - 1/3)

编程实现

JavaScript

// HEX → RGB
function hexToRgb(hex) {
  const r = parseInt(hex.substr(1, 2), 16);
  const g = parseInt(hex.substr(3, 2), 16);
  const b = parseInt(hex.substr(5, 2), 16);
  return [r, g, b];
}

// RGB → HEX
function rgbToHex(r, g, b) {
  return '#' + [r, g, b].map(x => x.toString(16).padStart(2, '0')).join('');
}

// RGB → HSL
function rgbToHsl(r, g, b) {
  r /= 255; g /= 255; b /= 255;
  const max = Math.max(r, g, b), min = Math.min(r, g, b);
  let h, s, l = (max + min) / 2;
  if (max === min) {
    h = s = 0;
  } else {
    const d = max - min;
    s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
    switch (max) {
      case r: h = (g - b) / d + (g < b ? 6 : 0); break;
      case g: h = (b - r) / d + 2; break;
      case b: h = (r - g) / d + 4; break;
    }
    h /= 6;
  }
  return [h * 360, s * 100, l * 100];
}

Python

import colorsys

# RGB → HSL
r, g, b = 1.0, 87/255, 51/255
h, l, s = colorsys.rgb_to_hls(r, g, b)
print(f'HSL({h*360}, {s*100}%, {l*100}%)')

# HEX → RGB
hex_color = '#FF5733'
r, g, b = tuple(int(hex_color[i:i+2], 16) for i in (1, 3, 5))

CSS Color Module Level 4

新 CSS 颜色函数:

color: hsl(204deg 70% 53%);
color: hwb(204 30% 20%);
color: lab(50% 40 30);
color: lch(50% 50 240);
color: color(display-p3 0.5 0.6 0.7);

颜色名称

CSS 标准 140 个颜色名:

名称HEX
red#FF0000
green#008000
blue#0000FF
white#FFFFFF
black#000000
yellow#FFFF00
cyan#00FFFF
magenta#FF00FF
gray#808080
orange#FFA500
purple#800080
pink#FFC0CB
brown#A52A2A

完整列表见 MDN 文档。

实战场景

场景 1:网页主色

品牌色:#3498DB
浅色:#85C1E2(10% 不透明)
深色:#21618C

场景 2:从 Logo 取色

  1. 上传 Logo 到 52tool 取色器
  2. 点击主色位置
  3. 获取 HEX 值
  4. 用作网页主色

场景 3:配色方案

主色 #3498DB,生成配色:

52tool 配色生成

场景 4:检查对比度

文字颜色 vs 背景颜色:

文字:#333333
背景:#FFFFFF
对比度:12.6:1
WCAG AAA 通过(≥ 7:1)

参考 52tool 对比度检查

场景 5:CSS 渐变

background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

参考 52tool CSS 渐变生成器

场景 6:CSS 变量

:root {
  --primary: #3498db;
  --primary-dark: #21618C;
  --primary-light: #85C1E2;
  --text: #333;
  --background: #fff;
}

.button {
  background: var(--primary);
  color: white;
}

设计常用色板

Material Design

500 主色:

Tailwind CSS

gray-500: #6B7280
red-500: #EF4444
yellow-500: #EAB308
green-500: #22C55E
blue-500: #3B82F6
indigo-500: #6366F1
purple-500: #8B5CF6
pink-500: #EC4899

中国传统色

进阶技巧

技巧 1:用 HSL 调色

HSL 比 RGB 直观:

主色 HSL(204, 70%, 53%)
变深:HSL(204, 70%, 33%)
变浅:HSL(204, 70%, 73%)
变饱和:HSL(204, 90%, 53%)

技巧 2:颜色一致性

整个网站用 CSS 变量统一管理:

:root {
  --primary: #3498db;
  --secondary: #2ecc71;
  --accent: #e74c3c;
  --text: #333;
  --background: #fff;
}

技巧 3:色彩心理学

技巧 4:60-30-10 法则

设计配色比例:

技巧 5:色盲友好

避免红绿组合(约 8% 男性色盲)。用 对比度检查 验证色盲友好性。

与其他工具配合

取色 + 配色

工具:配色生成器

取主色后生成完整配色方案。

取色 + 对比度

工具:对比度检查

确保文字在背景上可读。

取色 + CSS 渐变

工具:CSS 渐变生成器

用取的颜色生成 CSS 渐变。

取色 + 颜色转换

工具:颜色转换器

HEX/RGB/HSL/HSV/CMYK 互转。

常见问题

Q: HEX 和 RGB 颜色一样吗?

A: 是。HEX 是 RGB 的十六进制表示,值完全等价。

Q: HSL 和 HSV 区别?

A: HSL 的 L(亮度)= 0% 全黑,100% 全白。HSV 的 V(明度)= 0% 全黑,100% 纯色。PS 等用 HSV,CSS 用 HSL。

Q: 透明度怎么表示?

A: HEX 8 位(#3498DB80)或 RGBA/HSLA(rgba(52,152,219,0.5))。

Q: 怎么从图片取色?

A: 1) 用 52tool 取色器;2) 上传图片;3) 点击位置;4) 获取 HEX。

Q: 颜色名称能用吗?

A: 能。但只有 140 个标准名称,覆盖不全。建议用 HEX/RGB/HSL。

Q: 工具会泄露我的图片吗?

A: 52tool 取色器在浏览器端处理,图片不上传服务器。适合处理 Logo、设计稿等敏感图片。

常见问题解答

Q: 怎么从图片取色?

A: 1) 打开 52tool 取色器;2) 上传图片;3) 鼠标点击想取色的位置;4) 显示 HEX/RGB/HSL。

Q: HEX 怎么转 RGB?

A: HEX #FF5733,分别取前 2 位 FF=255、中间 57=87、后 2 位 33=51,得到 RGB(255, 87, 51)。

Q: RGB 怎么转 HSL?

A: 用工具或代码。手动算复杂:1) 归一化 RGB 到 0-1;2) 计算 max、min;3) 求 L、S、H。

Q: 透明度 80% 怎么写?

A: HEX 8 位:#3498DBCC(CC 是 80% 不透明)。RGBA:rgba(52,152,219,0.8)。

Q: 怎么生成配色方案?

A: 用 52tool 配色生成器:1) 输入主色;2) 选互补/类似/三元等;3) 生成方案。

Q: 颜色对比度多少合格?

A: 文字 vs 背景:WCAG AA ≥ 4.5:1,AAA ≥ 7:1。大文字(18px+ 或 14px+加粗):AA ≥ 3:1。

总结

取色器是设计师和前端必备:

记住:HEX 用于网页HSL 用于调色60-30-10 法则做设计