颜色空间(一)——RGB色彩模式

RGB色彩模式是工业界的一种颜色标准,目前的显示器大都是采用了RGB颜色标准。

自然界中,画画用的颜料最基本的颜色称为三原色。由红、黄、蓝组成。

而这里所说的是光学中的三基色。由红、绿、蓝构成。

那么计算机中是怎么存储各个像素的信息呢?

首先、先明确一点,R、G、B颜色分量值的物理含义是灰度值,也就是我们俗称的亮暗。

存储RGB有多种格式。如RGB24(RGB888)、RGB565、RGB555等、以及RGB32(RGBA)。

RGB24(RGB888)

RGB24是最实用的一种存储方式。每一个颜色分量都用1Byte(1字节)存储,即8Bit(8位),范围0~255。

由高到低存储 R、G、B。

这里不做过多解释(太常见了)。

RGB565

RGB565是用16位空间存储。

地址由高到低:R R R R R   G G G G G G   B B B B B

                         5位R            6位G                5位B

RGB555

RGB555也是用16位空间存储。不同的是最高位不做处理(无意义)

地址由高到低:X   R R R R R   G G G G G    B B B B B

                               5位R            5位G                5位B

涉及到几种模式的转换问题

我就写一种rgb24 →  rgb565的伪代码(很简单吧)

B = rgb24[0] >> 3 & 0x001F;
G = rgb24[1] >> 2 << 5 & 0x07E0;
R = rgb24[2] >> 3 << 11 & 0xF8;
color = R | G | B;

很容易理解。RGB565 或者 RGB555 是 RGB24的压缩形式

那么它们之间的转化就会造成精度的降低。

RGB32(RGBA)

RGBA是RGB24多加了alpha通道(不透明度参数)。在0%和100%之间的值则使得像素可以透过背景显示出来,就像透过玻璃(半透明性)。

猜你喜欢

转载自blog.csdn.net/u012198575/article/details/82993442