RGB888转换为RGB565格式
RGB888转换为RGB565格式
RGB888用unsigned int 32位字节存储
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | R7 | R6 | R5 | R4 | R3 | R2 | R1 | R0 | G7 | G6 | G5 | G4 | G3 | G2 | G1 | G0 | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||||||||
R:255 0xFF | G:0 0x00 | B:0 0x00 |
RGB565用unsigned short 16位字节存储
r7 | r6 | r5 | r4 | r3 | g7 | g6 | g5 | g4 | g3 | g2 | b7 | b6 | b5 | b4 | b3 |
1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
R: (0xFF &0x1F)<<11 | G:(0x00 & 0x3F)<<5 | B:(0x00 & 0x1F) | |||||||||||||
F | 8 | 0 | 0 |
主要思路:
- R:将RGB888的(R)高5位(R7 R6 R5 R4 R3)与RGB565(r7 r6 r5 r4 r3)相对应,即R值&0x1F(取高5位),然后左移11位——>(R & 0x1F)<<11;
- G:将RGB888的(G)高6位(G7 G6 G5 G4 G3 G2)与RGB565(g7 g6 g5 g4 g3 g2)相对应,即G值&0x3F(取高6位),然后左移5位——> (G & 0x3F)<<5;
- B:将RGB888的(B)高5位(B7 B6 B5 B4 B3)与RGB565(b7 b6 b5 b4 b3)相对应,即B值&0x1F(取高5位)——> (B & 0x1F);
举例:红色 RGB888格式为(R:255,G:0,B:0 0xFF0000) ——> RGB565格式为(0xF800)
代码实现:
//运用宏封装起来:
#define RGB888_To_RGB565(R,G,B) (uint16_t)((R & 0x1f)<<11|(G & 0x3f)<<5|(B & 0x1f))//调用时:
RGB888_To_RGB565(255,0,0) //显示红色
RGB888_To_RGB565(0,255,0) //显示绿色
RGB888_To_RGB565(0,0,255) //显示蓝色
说明:在stm32控制LCD液晶显示器时,液晶一般用RGB565格式(为了压缩数据节省空间),但我们查到的颜色数值一般都是RGB888格式,所以需要有这一转换过程。
但这种方式并不完美,会丢失一部分颜色数据影响精度,且不能复原,所以还有另一种方案——量化补偿,此处不深究。
RGB888转换为RGB565格式相关推荐
- matlab读取RGB888或RGB565像素文件并绘图
1.matlab下,通过读取txt文件中的RGB888格式的像素文件绘图,并将其转换为RGB565格式后再绘图.代码如下: clear all; close all; a=textread('E:\m ...
- 24位深的bmp图片转换为16位深RGB565格式的bmp图片源码
/**24位深的bmp图片转换为16位深RGB565格式的bmp图片**/ #include <iostream> #include <stdio.h> #include &l ...
- RGB888转RGB565
今天在REVIEW代码的时候,发现了这样一个宏定义: #define COLOR_TO_MTK_COLOR_SIMUL(color) ((((color) >> 19) & 0x1 ...
- RGB888 和 RGB565
今天作练习,是一个将RGB888的图像转换成RGB565在ARM 的 LCD上显示的小程序.里面的移位来移位去的完全不了.先是不管三七二是一,把程序运行了一下.图像是一行一行刷出来的,点是一个一个一行 ...
- BMP数据转换为RGB565
本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 作者:JDH 2010-03-09 TFT屏的显示缓存能直接显示RGB565的数据,所以BMP要转换成R ...
- 电子书格式怎么在线转换为PDF格式
电子书格式怎么在线转换为PDF格式,现在很多朋友喜欢用PDF格式的电子书,因为其有纸质书的排版和格局,但实际生活中出现的最多的是TXT等格式的电子书,那如何将其进行转换成PDF格式的呢,下面就由小编来 ...
- java pdf 多页转换为png格式的图片
java pdf 多页转换为png格式的图片 适用于 无论pdf有多少页均可 废话不说,直接上代码 import java.awt.Graphics; import java.awt.image.B ...
- R语言ggplot2可视化:应用pivot_longer函数将数据从宽格式转换为长格式、为dataframe的每一列绘制密度图和直方图(堆叠)
R语言ggplot2可视化:应用pivot_longer函数将数据从宽格式转换为长格式.为dataframe的每一列绘制密度图和直方图(堆叠) 目录 R语言ggplot2可视化:应用pivot_lon ...
- 在线qmc0转换mp3工具_如何将M4A格式的音频转换为MP3格式?只需一步搞定
随着网络技术的发达,会有很多人喜欢在网上下载东西,特别是很喜欢在网上下载音乐,但是下载音乐之后发现是M4A格式?这样用起来很不方便,都喜欢MP3格式的,那么如何将M4A格式的音频转换为MP3格式?今天 ...
- MATLAB批量实现dicom转换为bmp格式
写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友. 参考 MATLAB实现dicom转换为png格式 %%MATLAB实现dicom转换为bmp格式 clc;clear;c ...
最新文章
- 北斗芯片服务器,北斗芯片:GPS定位系统,正是再见!你期待吗?
- Linux Shell脚本专栏_批量主机远程执行命令脚本_08
- mysql数据表的创建-数据类型
- CVPR2021|引入记忆模块,突破长距离依赖视频预测的性能瓶颈
- 《天天数学》连载24:一月二十四日
- java xframeoptions,Header:X-Frame-Options开启与关闭方法
- img标签 三种获取数据方式
- Rust 生命周期太难学、最想实现与 C++ 互操作,Rust 2020 调查报告发布!
- 【C#小知识】C#中一些易混淆概念总结(八)---------解析接口
- 深入浅出看懂AlphaGo Zero (文章最后有原AlphaGo Zero论文地址)
- ubuntu服务器系统分区大小,服务器Ubuntu系统分区教程
- CS1.6自定义游戏中的H菜单和设置菜单,增加一键买枪功能
- 个人档案php源码,php人事档案管理系统
- Linux系统使用Tomcat部署项目图片验证码不显示问题
- Hdu4747 Mex 递推
- linux常用命令大全,建议收藏
- 详解 Java 常用的四种锁机制优缺点
- python给ppt表格加边框_带你用Python玩转PPT
- 食品超声波设备的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 使用linux的gpio点亮imx6ull的led灯