RGB16数据格式主要有二种:RGB565和RGB555
RGB565
每个像素用16比特位表示,占2个字节,RGB分量分别使用5位、6位、5位。

//获取高字节的5个bit R = color & 0xF800;
//获取中间6个bit G = color & 0x07E0; //
获取低字节5个bit B = color & 0x001F;
RGB555
每个像素用16比特位表示,占2个字节,rgb分量都使用5位(最高位不用)。

//获取高字节的5个bit R = color & 0x7C00;
//获取中间5个bit G = color & 0x03E0;
//获取低字节5个bit B = color & 0x001F;
RGB24图像每个像素用24比特位表示,占3个字节,注意:在内存中RGB各分量的排列顺序为:BGR BGR BGR ......。

RGB32图像每个像素用32比特位表示,占4个字节,R,G,B分量分别用8个bit表示,存储顺序为B,G,R,最后8个字节保留。注意:在内存中RGB各分量的排列顺序为:BGRA BGRA BGRA ......
ARGB32
本质就是带alpha通道的RGB24,与RGB32的区别在与,保留的8个bit用来表示透明,也就是alpha的值
在内存中的分量排列顺序如下:

R = color & 0x0000FF00;
G = color & 0x00FF0000;
B = color & 0xFF000000;
A = color & 0x000000FF;
原文:https://www.cnblogs.com/lht-learning/p/15004788.html