RGB888与RGB565

news/2024/11/13 3:46:48/
真彩色是指图像中的每个像素值都分成R(红)、G(绿)、B(蓝)三个基色分量,每个基色分量直接决定其基色的强度,这样产生的色彩称为彩色。彩色图像是一种用三个或更多字节描述像素的计算机图像存储方式。
普遍认为人眼对色彩的分辨能力大致是一千万色,因此由RGB888形成的图像称作真彩色。RGB888真彩色,每一色光以8位表示,每个通道各有256级阶调,三色光交互增减,RGB三色光能在一个像素上最高显示24位1677万色(256*256*256=16,777,216),这个数值就是电脑中所能表示的最高色彩。
RGB332(3+3+2=8位色):(2^3)*(2^3)*(2^2) =  8*8*4 = 256(256 Color).俗称256色。
RGB555(5+5+5=15位色):(2^5)*(2^5)*(2^5) = 32*32*32 = 32768(32768/1024 = 32,32K Color),俗称32千色。
RGB565(5+6+5=16位色 ):(2^5)*(2^6)*(2^5) = 32*64*32 = 65536(65536/1024 = 64,64K Color),俗称65千色。
RGB666(6+6+6=18位色):(2^6)*(2^6)*(2*6) = 64*64*64 = 262144(262144/1024 = 256, 256K Color).俗称262千色.
RGB888(8+8+8=24位色):(2^8)*(2^8)*(2^8) = 256*256*256 = 16777216(16777216/1024 = 16384,16384K Color ; 16384/1024 = 16 , 16M Color。) 俗称16兆真彩色。
RGB888+8(8+8+8+8=32位色);
除了24位真彩色,现在还出现了32位真彩色(RGB888+8)。32位真彩色并非是2的32次方的发色数,它其实是1677万多色,不过它增加了8位共256阶颜色的灰度,为了方便称呼,就规定它为32位色。它是24位发色数再加上256阶灰度等级。在我们的计算机中图像是以RGB888格式显示图像的,24位图每个像素保存了32bit的数据,即RGB888+Alpha,Alpha就是半透明填充字节……但是对于真彩的图像而言,肉眼在16bit的时候已经难以分辨了,因此,有些时候,可以讲RGB888转换为RGB565来存储,减少了存储器的容量的同时,降低了数据量;在后端显示的时候,再次把RGB565转换为RGB888,实现数据宽度的匹配!!
**总结:低位增加或者移除**一、RGB888->RGB565
方法只要提取相应单色高位即可(R5 G6 B5),但会导致低位的缺失,影响精度,而且无法恢复。
二.RGB565->RGB888
方法只要补充相应单色低位即可(R3 G2 B3)。RGB888用unsigned int 32位字节存储
00000000R7R6R5R4R3R2R1R0G7G6G5G4G3G2G1G0B7B6B5B4B3B2B1B0
                                          RGB565用unsigned short 16位字节存储
R7R6R5R4R3G7G6G5G4G3G2B7B6B5B4B3

1、#define RGB888_RED 0x00ff0000
2、#define RGB888_GREEN 0x0000ff00
3、#define RGB888_BLUE 0x000000ff

4、#define RGB565_RED 0xf800
5、#define RGB565_GREEN 0x07e0
6、#define RGB565_BLUE 0x001f

7、unsigned short RGB888ToRGB565(unsigned int n888Color)
{
unsigned short n565Color = 0;
// 获取RGB单色,并截取高位
unsigned char cRed = (n888Color & RGB888_RED) >> 19;
unsigned char cGreen = (n888Color & RGB888_GREEN) >> 10;
unsigned char cBlue = (n888Color & RGB888_BLUE) >> 3;
// 连接
n565Color = (cRed << 11) + (cGreen << 5) + (cBlue << 0);
return n565Color;
}

8、unsigned int RGB565ToRGB888(unsigned short n565Color)
{
unsigned int n888Color = 0;
// 获取RGB单色,并填充低位
unsigned char cRed = (n565Color & RGB565_RED) >> 8;
unsigned char cGreen = (n565Color & RGB565_GREEN) >> 3;
unsigned char cBlue = (n565Color & RGB565_BLUE) << 3;
// 连接
n888Color = (cRed << 16) + (cGreen << 8) + (cBlue << 0);
return n888Color;
}


http://www.ppmy.cn/news/117132.html

相关文章

5513

http://rrd.me/ecMtH 急速快花 http://rrd.me/ecMtQ 猫猫来 http://t.cn/EtfFnA4 来客优上城 http://t.cn/EtpcKYB 金来购 http://t.cn/EtfsLoD 聚合 http://t.cn/EtfsKSf 花不完 来就借 http://t.cn/EtwK9nG 借了发 http://t.cn/EtPWYA6 金米赏城 http://t.cn/EtP8dHi 上…

python 笔试题的输入输出

n int(input()) a [] b [] c [] for i in range(n):A, B, C map(int, input().split())a.append(A)b.append(B)c.append(C)1.普通输入 ##输入一行2 3 a input().split() print(a) ##["2","3"] ##输入两行 ##5 ##1 5 6 a [] b input() print(b)##5…

常见MAC操作

文章目录 1、查看所有MAC地址2、查看某个接口学习到的MAC地址3、查看某个VLAN学习到的MAC地址4、查看系统的MAC地址5、查看接口的MAC地址6、查看VLANIF接口的MAC地址7、查看IP获取对应设备的MAC地址8、配置静态MAC地址9、配置黑洞MAC地址10、查看和配置MAC地址的老化时间11、配…

电子元件-555时基芯片

内容包括555时基芯片组成单稳态、双稳态、多谐振荡器电路详细介绍&#xff0c;组成看门狗电路&#xff08;含工程实际电路&#xff09;。紫色文字是超链接&#xff0c;点击自动跳转至相关博文。持续更新&#xff0c;原创不易&#xff01; 目录&#xff1a; 一、组成单稳态电路 …

RGB888和RGB565颜色对照表

在做项目的时候&#xff0c;经常会遇到颜色的处理&#xff0c;现将颜色对照表总结下来&#xff0c;方便以后使用。24位色为RGB888格式&#xff0c;16位色为RGB565格式。 颜色名称英语十六进制RGB16R16G16B16rgb(rgb565)RGB565格式 黑色Black#00000000000000X0  昏灰Dimgray#…

docker安装rabbitmq并挂载

1、拉取镜像 management&#xff1a;表示可以通过web页面管理。 alpine&#xff1a;表示是linux最小版本&#xff0c;不推荐新手安装。 docker pull rabbitmq:management2、创建用于挂载的目录 mkdir -p /mydata/rabbitmq/{data,conf,log} # 创建完成之后要对所创建文件授权…

【SQL注入-15】自动化注入案例—以sqli-labs-less9为例(利用sqlmap工具)

目录 1 前言2 自动化注入案例—以sqli-labs-less9为例2.1 实验平台2.2 注入前准备2.3 判断注入点及注入类型2.3.1 自动判断注入点及注入类型2.3.2 手动判断注入点及注入点类型 2.4 爆库名2.5 爆表名2.6 爆字段名2.7 爆字段内容 3 批量爆破 1 前言 由于手动注入、半自动化注入效…