计算机的颜色表示

计算机的颜色表示

1. 计算机为什么用 RGB 表示颜色?

1. 人眼如何感知颜色

计算机中颜色的表示主要基于 人眼感知颜色的方式 以及 硬件显示原理。人眼的视网膜上有三类锥体细胞,分别对三种波长范围最敏感:

  • 红色(Red) 敏感
  • 绿色(Green) 敏感
  • 蓝色(Blue) 敏感

大脑会根据这三种刺激的强弱组合,感知出不同的颜色。这叫做 三色视觉理论

2. 显示器如何发光

常见的显示器(LCD、LED、OLED)中,每个像素其实都由 三个子像素 组成:

  • 红色子像素(R)
  • 绿色子像素(G)
  • 蓝色子像素(B)

通过控制这三个子像素的亮度,就能混合出各种颜色。

注意:RGB 是 红(Red)+ 绿(Green)+ 蓝(Blue),不是红、黄、蓝,红黄蓝(RYB) 是美术颜料体系,用于绘画。RGB 是发光体系,用于屏幕。

2. RGB 三个参数分别代表什么?

在 RGB 模型中,一个颜色由三个数值表示:

1
RGB(R, G, B)
  • R(Red):红色强度
  • G(Green):绿色强度
  • B(Blue):蓝色强度

1. 常见取值范围

最常见的是 8 位表示法(24 位真彩色):

  • 每个通道范围:0 ~ 255
  • 总颜色数:256 × 256 × 256 = 16,777,216

2. 示例

RGB 值含义
RGB(0,0,0)黑色
RGB(255,255,255)白色
RGB(255,0,0)纯红
RGB(0,255,0)纯绿
RGB(0,0,255)纯蓝
RGB(255,255,0)黄色(红 + 绿)
RGB(0,255,255)青色
RGB(255,0,255)品红

可以看到:黄色 ≠ 基本色,黄色是 红 + 绿 混合而成的。

3. color: #ffffff 这种写法是什么意思?

这是 十六进制(Hex)颜色表示法,在 QSS/HTML/CSS/前端开发中非常常见。

1. 基本结构

1
#RRGGBB
  • RR:红色通道
  • GG:绿色通道
  • BB:蓝色通道

如何看:2 个 2 个一分,共 3 组,每组代表一种颜色的含量/占比。

2. 为什么用十六进制?

因为:1 个十六进制字节 = 8 位(二进制),范围正好是 00 ~ FF,对应 0 ~ 255,对计算机和程序员都友好。

3. #ffffff 的具体含义

1
2
# FF  FF  FF
R G B
  • FF(十六进制) = 255(十进制)
  • 即:RGB(255, 255, 255) → 白色

4. 更多例子

十六进制十进制 RGB颜色
#000000(0,0,0)
#ff0000(255,0,0)
#00ff00(0,255,0)绿
#0000ff(0,0,255)
#ffff00(255,255,0)
#808080(128,128,128)
#c0c0c0(192,192,192)浅灰

4. 为什么有时可以写成 #fff

CSS 允许 简写形式

1
#RGB

规则是:

1
#RGB#RRGGBB

即每个字符重复一次。示例:

简写完整写法含义
#fff#ffffff
#000#000000
#f00#ff0000
#0f0#00ff00绿
#00f#0000ff

5. RGB 的本质:数值 → 光强

可以把 RGB 理解成三个“旋钮”:

  • R 控制红光亮度
  • G 控制绿光亮度
  • B 控制蓝光亮度
  1. 当三个都为 0:没有光 → 黑
  2. 当三个都最大:光最强 → 白
  3. 不同组合:就是不同颜色

6. 补充:还有哪些颜色表示方式?

1. RGBA

1
RGBA(R, G, B, A)
  • A = Alpha(透明度)
  • 范围:0 ~ 1
  • 示例:rgba(255, 0, 0, 0.5)(半透明红)

2. HSL / HSV

  • 色相(Hue)饱和度(Saturation)亮度(Lightness / Value)
  • 更符合人类对颜色的直觉理解
  • 常用于调色工具

3. CMYK(印刷)

  • 青、品红、黄、黑
  • 用于打印机,不用于屏幕