上一篇講解了RGB索引格式,算是RGB的開胃菜吧,此篇應該是正餐,講解RGB的像素格式,主流的有RGB565,RGB555, RGB24,RGB32, ARGB32,每一種格式按照簡介,存儲示意圖,以及獲取具體像素的方法來講解。接下來步入正題:
1、RGB565:
a.概述:
RGB565格式每一個像素用16個bit來表示,2個字節, 1個WORD, R, G, B分別用5, 6, 5個bit來表示,格式也因此而得名。
b.存儲示意:
![](https://s1.51cto.com/images/blog/201801/26/fd9aa397f6e9605eef7d449b1bd0bad1.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
c.獲取具體像素值方法:
根據RGB565的存儲方式,即可得到獲取R,G,B分量的值。現假設計算機中存儲某一個像素點的變量爲color, 數據類型爲short. 那麼則有:
R = color & 0xF800, (獲取高字節的5個bit)
G = color & 0x07E0, (獲取中間6個bit)
B = color & 0x001F, (獲取低字節5個bit)
-
RGB55:
a.概述:
RGB55, 表示一個像素用16個bit == 2個字節 == 1個WORD,但是最高位不用,R, G, B分別用5個bit來表示。
b.存儲示意:c.獲取具體像素值方法: 根據RGB565的存儲方式,即可得到獲取R,G,B分量的值。現假設計算機中存儲某一個像素點的變量爲color, 數據類型爲short. 那麼則有: R = color & 0x7C00, (獲取高字節的5個bit) G = color & 0x03E0, (獲取中間5個bit) B = color & 0x001F, (獲取低字節5個bit)
3.RGB24:
a.概述:
RGB24, 一個像素用24個bit == 3個字節來表示,R, G, B分量分別用8個bit來表示。
b.存儲示意(注意RGB24格式按BGR的方式存儲):c.獲取具體像素值方法: 根據RGB565的存儲方式,即可得到獲取R,G,B分量的值。現假設計算機中存儲某一個像素點的變量爲color, 數據類型爲int. 那麼則有: R = color & 0x000000FF, G = color & 0x0000FF00, B = color & 0x00FF0000,
4.RGB32:
a.概述:
RGB32,一個像素用32個bit == 4個字節 == 2個WORD來表示,R, G, B分量分別用8個bit表示,存儲順序爲B, G, R,最後8個字節保留。
b.存儲示意:
c.獲取具體像素值方法:
根據RGB565的存儲方式,即可得到獲取R,G,B分量的值。現假設計算機中存儲某一個像素點的變量爲color, 數據類型爲short. 那麼則有:
R = color & 0x0000FF00
G = color & 0x00FF0000,
B = color & 0xFF000000,