天天看點

RGB格式詳解(三)-----RGB像素格式

上一篇講解了RGB索引格式,算是RGB的開胃菜吧,此篇應該是正餐,講解RGB的像素格式,主流的有RGB565,RGB555, RGB24,RGB32, ARGB32,每一種格式按照簡介,存儲示意圖,以及擷取具體像素的方法來講解。接下來步入正題:

RGB格式詳解(三)-----RGB像素格式
  1. RGB565:

    a.概述:

    RGB565格式每一個像素用16個bit來表示,2個位元組, 1個WORD, R, G, B分别用5, 6, 5個bit來表示,格式也是以而得名。

b.存儲示意:

RGB格式詳解(三)-----RGB像素格式

c.擷取具體像素值方法:

根據RGB565的存儲方式,即可得到擷取R,G,B分量的值。現假設計算機中存儲某一個像素點的變量為color, 資料類型為short. 那麼則有:

R = color & 0xF800, (擷取高位元組的5個bit)

G = color & 0x07E0, (擷取中間6個bit)

B = color & 0x001F, (擷取低位元組5個bit)

RGB格式詳解(三)-----RGB像素格式

2. RGB55:

a.概述:

RGB55, 表示一個像素用16個bit == 2個位元組 == 1個WORD,但是最高位不用,R, G, B分别用5個bit來表示。

b.存儲示意:

RGB格式詳解(三)-----RGB像素格式

c.擷取具體像素值方法:

根據RGB565的存儲方式,即可得到擷取R,G,B分量的值。現假設計算機中存儲某一個像素點的變量為color, 資料類型為short. 那麼則有:

R = color & 0x7C00, (擷取高位元組的5個bit)

G = color & 0x03E0, (擷取中間5個bit)

B = color & 0x001F, (擷取低位元組5個bit)

RGB格式詳解(三)-----RGB像素格式

3.RGB24:

a.概述:

RGB24, 一個像素用24個bit == 3個位元組來表示,R, G, B分量分别用8個bit來表示。

b.存儲示意(注意RGB24格式按BGR的方式存儲):

RGB格式詳解(三)-----RGB像素格式

c.擷取具體像素值方法:

根據RGB565的存儲方式,即可得到擷取R,G,B分量的值。現假設計算機中存儲某一個像素點的變量為color, 資料類型為int. 那麼則有:

R = color & 0x000000FF,

G = color & 0x0000FF00,

B = color & 0x00FF0000,

RGB格式詳解(三)-----RGB像素格式

4.RGB32:

a.概述:

RGB32,一個像素用32個bit == 4個位元組 == 2個WORD來表示,R, G, B分量分别用8個bit表示,存儲順序為B, G, R,最後8個位元組保留。

b.存儲示意:

RGB格式詳解(三)-----RGB像素格式

c.擷取具體像素值方法:

根據RGB565的存儲方式,即可得到擷取R,G,B分量的值。現假設計算機中存儲某一個像素點的變量為color, 資料類型為short. 那麼則有:

R = color & 0x0000FF00

G = color & 0x00FF0000,

B = color & 0xFF000000,

RGB格式詳解(三)-----RGB像素格式

5. ARGB32:

a.概述:

ARGB32與RGB32類似,唯一不同的地友善是RGB32保留的8個BIbit用來表示透明,也就是alpha的值。

b.存儲示意:

RGB格式詳解(三)-----RGB像素格式

c. 擷取具體像素值方法:

根據RGB565的存儲方式,即可得到擷取R,G,B分量的值。現假設計算機中存儲某一個像素點的變量為color, 資料類型為short. 那麼則有:

R = color & 0x0000FF00,

G = color & 0x00FF0000,

B = color & 0xFF000000,

A = color & 0x000000FF,