RGB:是一种加色模型,将红(Red
)、绿(Green
)、蓝(Blue
)三原色的色光以不同的比例相加,以产生多种多样的色光;且三原色的红绿蓝不可能用其他单色光合成。
- 浮点表示方式:取值范围为
0.0 ~ 1.0
。 - 整数表示:取值范围为
0 ~ 255
或者00 ~ FF
(如 RGBA_8888、RGB_565)。
格式
索引形式
- RGB1:每个像素用 1 个
bit
表示0
,1
两种值,可表示的颜色范围为双色,即最传统的黑和白;需要调色板,不过调色板只包含两种颜色。 - RGB4:每个像素用 4 个
bit
表示,4 个bit
所能够表示的索引范围是0~15
,共 16 个。也就是可以表示 16 种颜色。即调色板中包含 16 中颜色。 - RGB8:每个像素用 8 个
bit
表示。8 个bit
所能够表示的索引范围是0~255
,共 256 个。也就是可以表示 256 种颜色。即调色板中包含 256 种颜色。
像素形式
- RGB555:
- 概述:每一个像素用 16 个
bit
(2个字节)来表示,但最高位不用,R 用 5 个bit
、G 用 5 个bit
、B 用 5 个bit
表示。 - 内存示意图:
-
-
- 获取具体像素值方法:(假设
color
为存储某一个像素点的变量)
- 获取具体像素值方法:(假设
R = color & 0x7C00
// 获取高字节 5 个 bitG = color & 0x03E0
// 获取中间的 5 个 bitB = color & 0x001F
// 获取低字节 5 个 bit
RGB565:
- 概述:每一个像素用 16 个
bit
(2 个字节)来表示,R 用 5 个bit
、G 用 6 个bit
、B 用 5 个bit
表示。 - 内存示意图:
-
- 获取具体像素值方法:(假设
color
为存储某一个像素点的变量)
R = color & 0xF800
// 获取高字节 5 个 bitG = color & 0x07E0
// 获取中间的 6 个 bitB = color & 0x001F
// 获取低字节 5 个 bit
RGB24:
- 获取具体像素值方法:(假设
- 概述:每一个像素用 24 个
bit
(3个字节)来表示,R、G、B 均用 8bit
表示。 - 内存示意图:
- 获取具体像素值方法:(假设
color
为存储某一个像素点的变量) R = color & 0x0000FF
G = color & 0x00FF00
B = color & 0xFF0000
RGB32:
- 概述:每一个像素用 32 个
bit
(4个字节)来表示,R、G、B 均用 8bit
表示,最后 1 个字节保留 - 内存示意图:
- 获取具体像素值方法:(假设
color
为存储某一个像素点的变量) R = color & 0x0000FF00
G = color & 0x00FF0000
B = color & 0xFF000000