码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-01-26 10:53:44      阅读:2864      评论:0      收藏:0      [点我收藏+]

标签:详解   意图   code   pre   oss   proc   image   bit   http   

上一篇讲解了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.存储示意:

         ![](http://i2.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.存储示意:
    技术分享图片

    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,

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

标签:详解   意图   code   pre   oss   proc   image   bit   http   

原文地址:http://blog.51cto.com/7335580/2065296

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!