上一篇讲解了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://s4.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)

  1. RGB55:
    a.概述:
    RGB55, 表示一个像素用16个bit == 2个字节 == 1个WORD,但是最高位不用,R, G, B分别用5个bit来表示。
    b.存储示意:
    RGB格式详解(三)---RGB像素格式_第1张图片

    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的方式存储):
    RGB格式详解(三)---RGB像素格式

    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.存储示意:
RGB格式详解(三)---RGB像素格式_第2张图片

    c.获取具体像素值方法:
             根据RGB565的存储方式,即可得到获取R,G,B分量的值。现假设计算机中存储某一个像素点的变量为color, 数据类型为short. 那么则有:
      R  =  color & 0x0000FF00
      G  =  color & 0x00FF0000,
      B  =  color & 0xFF000000,