如何将24位RGB颜色转换16位RGB颜色
有许多朋友第一次使用16位彩色显示屏会遇到如何将24位RGB颜色转换为对应的16位RGB颜色的问题,
通过查阅相关资料,就写一下其中的转换原理吧,希望对大家会有所帮助。
我们知道24位RGB是分别由8位红色,8位绿色以及8位蓝色组成:
RRRRRRRR GGGGGGGG BBBBBBBB
例如:24位RGB红色表示方法为
(十六进制表示为:0xFF0000)
而对应的16位RGB颜色则是由5位红色,6位绿色以及5位红色组成:
RRRR RGGG GGGB BBBB
例如:16位RGB红色表示方法为
1111 1000 0000 0000 (十六进制表示为:0xF800)
转换原理:
刚才说了红色的24位RGB为:
转换为16位的RGB则需要将8位R值右移3位,变为了5位:
8位G值右移2位,变成了6位:
8位B值右移3位,变成了5位:
通过此种转换,我们最后就得到了对应的16位RGB色彩:RRRR RGGG GGGB BBBB,转换为对应的16进制就是:0xF800,
然后我们操作16位彩色显示器的时候就可以将对应的16进制数值赋给显示器上的某个像素点了。其他颜色的转换原理亦是这样。
【注】本文出自 “世界都一样” 博客,请务必保留此出处http://970076933.blog.51cto.com/9767314/1885622
如何将24位RGB颜色转换16位RGB颜色的更多相关文章
- HTML RGB 颜色表 16进制表 颜色对应表
HTML RGB 颜色表 16进制表 颜色对应表 16 常用颜色表(颜色 + RGB + 名字): Color Value Name Color Value Name #00FFFF aqu ...
- js中如何把RGB颜色转换为16进制颜色
将RGB颜色值转换为16进制颜色值,主要是将 R.G.B 值分别转换为对应的十六进制值,填入 #RRGGBB 中. 推荐在线颜色转换工具:http://www.ecjson.com/rgbhex/ 例 ...
- iOS 16进制颜色转换10进制颜色
+(UIColor *)colorWithHexString:(NSString *)coloStr{ // 检索 去下空格和换行 转成大写 NSString *cString = [[col ...
- bmp文件格式中rgb555与rgb888之间的转换,24位与16位位图的转换
今日,有同事问我.rgb555模式下的位图文件的格式问题,于是花了一下午的时间通过推測与測试,分析出了例如以下bmp文件在rgb555模式下的文件存储规律: 1:bmp文件的文件信息头中的biBitC ...
- 24位PCM采样数据转成16位算法,已实现PCM转WAV在线工具源码支持24bits、16bits、8bits
目录 算法来源 js版24位PCM转8位.16位代码 js版8位.16位PCM转成24位 附:浏览器控制台下载数据文件代码 相关实现 最近收到几个24位的PCM录音源文件,Recoder库原有的PCM ...
- C语言程序设计100例之(24):数制转换
例24 数制转换 题目描述 请你编一程序实现两种不同进制之间的数据转换. 输入格式 共三行,第一行是一个正整数,表示需要转换的数的进制n(2≤n≤16),第二行是一个n进制数,若n>10则用 ...
- 使用 GCC 和 GNU Binutils 编写能在 x86 实模式运行的 16 位代码
不可否认,这次的标题有点长.之所以把标题写得这么详细,主要是为了搜索引擎能够准确地把确实需要了解 GCC 生成 16 位实模式代码方法的朋友带到我的博客.先说一下背景,编写能在 x86 实模式下运行的 ...
- 16位cpu下主引导扇区及用户程序的编写
一些约定 主引导扇区代码(0面0道1扇区)加载至0x07c00处 用户程序头部代码需包含以下信息:程序总长度.程序入口.重定位表等信息 用户程序 当虚拟机启动时,在屏幕上显示以下两句话: This i ...
- Linux 桌面玩家指南:08. 使用 GCC 和 GNU Binutils 编写能在 x86 实模式运行的 16 位代码
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
随机推荐
- devexpress 中 XtraTabcontrol 改变BackColor 的方法
装载自CSDN,原文地址 https://blog.csdn.net/zjzytnn/article/details/53699340 今天在实现CAD文件的读和显示操作的时候,需要将CAD文件显示 ...
- SQLSERVER 中GO的作用
go 向 SQL Server 实用工具发出一批 Transact-SQL 语句结束的信号.go是把t-sql语句分批次执行.(一步成功了才会执行下一步,即一步一个go) BEGIN 和 END 语句 ...
- Python学习---匿名函数和闭包的学习
1.1. 匿名函数 匿名函数的命名规则: 用lamdba 关键字标识,冒号(:)左侧表示函数接收的参数(a,b) ,冒号(:)右侧表示函数的返回值(a+b). 因为lamdba在创建时不需要命名,所 ...
- January 29 2017 Week 5 Sunday
In order to be irreplaceable one must always be different. 若想无可替代,必须与众不同. If all your skills or pers ...
- 条件独立(conditional independence) 结合贝叶斯网络(Bayesian network) 概率有向图 (PRML8.2总结)
转:http://www.cnblogs.com/Dzhouqi/p/3204481.html本文会利用到上篇,博客的分解定理,需要的可以查找上篇博客 D-separation对任何用有向图表示的概率 ...
- 022configparser模块
#配置模块 #创建import configparser config = configparser.ConfigParser() #添加config["DEFAULT"] ...
- [零基础学JAVA]Java SE基础部分-04. 分支、循环语句
转自:http://redking.blog.51cto.com/27212/116751 1.课程名称:分支.循环 本季为JAVA程序中最重要的部分,在讲解的时候除了讲解各种主要的控制语句(分支语句 ...
- 创建Spring工程的基本步骤
第一步:加入jar包 第二步:创建配置文件 -申明javabean 配置 <?xml version="1.0" encoding="UTF-8"?> ...
- bzoj2336 [HNOI2011]任务调度
Description 正解:搜索+随机化. 先写个搜索,枚举所有没有要求的任务属于哪一种任务,然后再用爬山来更新最优解. 具体来说就是先把所有先做任务$A$的按照$a$时间从大到小排序,先做任务$B ...
- 文本编辑器js插件
1.首先引入所需js文件 <!--文本编辑器js组件--> <script type="text/javascript" charset="utf-8& ...