前言

因为在做LCD设置颜色的时候,我的TFTLCD屏只支持16位RGB,但是web获取的颜色是24位RGB甚至还有透明度,先忽略透明度,那么就需要一个转换工具,没找到,就自己写了个。
原理参考:如何将24位RGB颜色转换16位RGB颜色
0xFF0000 转为 0xF800
核心就是 11111111 00000000 00000000
8位R值右移3位,变为了5位:11111
8位G值右移2位,变成了6位:000000
8位B值右移3位,变成了5位:00000
最后拼接回去 1111 1000 0000 0000
OK,那么直接上效果和代码

在线测试

码云pages

效果图

源码

index.html

<!DOCTYPE html>
<html><head>
<meta charset="UTF-8">
<title>24位RGB转16位RGB</title>
<style>body {text-align: center;padding: 10%;font-size: 28px;}input {width: 30%;height: 28px;margin: 10px;font-size: 28px;}button {font-size: 28px;width: 50%;margin: 20px;}
</style>
<script>function rgb_24_to_16() {var in24 = document.getElementById("in").value;var str = "";// 正则校验var pattern = /#?[a-zA-Z0-9]{6}/;if(!pattern.test(in24) || in24.length > 7) {alert("输入长度不为6或7,请输入如:'#000000' 或 'FFFFFF'");return;}if(in24.length == 7) {// 裁掉#in24 = in24.substr(1, 6);str = "#";}// 裁剪RGBvar r = in24.substr(0, 2);var g = in24.substr(2, 2);var b = in24.substr(4, 2);console.log("裁剪后16进制 r:" + r + " g:" + g + " b:" + b);// 16进制转10进制r = parseInt(r, 16);g = parseInt(g, 16);b = parseInt(b, 16);console.log("转10进制 r:" + r + " g:" + g + " b:" + b);// 移位r = r >> 3;g = g >> 2;b = b >> 3;console.log("第一次移位后 r:" + r + " g:" + g + " b:" + b);// 恢复高位 相加r = r << 11;g = g << 5;console.log("第二次移位后 r:" + r + " g:" + g + " b:" + b);var rgb = r + g + b;console.log("十进制rgb:" + rgb);// 十进制转十六进制rgb = rgb.toString(16);console.log("十六进制rgb:" + rgb);// 结果回显 rgb前补0document.getElementById("out").value = str + rgb.padStart(4, '0');}
</script>
</head><body><div><span>原理参考:https://blog.csdn.net/baidu_26678247/article/details/65629447</span></div><div><span>24位RGB:</span><input type="text" id="in" placeholder="请输入如:'#000000' 或 'FFFFFF'"/></div><div><span>16位RGB:</span><input type="text" id="out" placeholder="结果输出" /></div><div><button type="button" onclick="rgb_24_to_16()">转换</button></div>
</body>
</html>

前端JS 实现将24位RGB颜色转换16位RGB颜色相关推荐

  1. 【图片】Python对RGB颜色与16进制颜色进行互转

    RGB颜色被称为"真彩色",是Photoshop中默认使用的颜色,也是最常用的一种颜色模式.RGB模式的图像由3个颜色通道组成,分别为红色通道(Red).绿色通道(Green)和蓝 ...

  2. GX3001Q ui 8位色 升级为16位色相关说明

    GX3001Q ui 8位色 升级为16位色相关说明3001Q ui主要目前主要有2种类别,一种是16位色方案,一种是8位色方案,均使用bmp格式图片.8位色指的是UI系统使用的bmp是8位色的.16 ...

  3. 8位字节数转16位字节数_位与字节比较

    8位字节数转16位字节数 Bit is the most basic storage unit of the computer systems where Byte is a basic storag ...

  4. C#中Guid.ToString (String)五种格式,以及将32位的GUID转为16位及其他格式

    注意:本内容来自:C#中Guid.ToString Method (String)五种格式,以及将将32位的GUID转为16位及其他格式 一.生成各种格式的32位GUID  System.Guid.N ...

  5. 创世贴|怎么在64或32位系统中运行16位程序《大富翁》

    创世贴|怎么在64或32位系统中运行16位程序<大富翁> 绪言 大家好!纵观游戏行业的发展,可谓是进步迅猛.百花齐放.游戏是每个人在学习.工作之余休闲娱乐的良药.玩游戏的人从皇宫贵族到社会 ...

  6. 24位真彩色图像转换为16位高彩色图像的实现方法及效果改进

    本篇博文来自博主Imageshop,打赏或想要查阅更多内容可以移步至Imageshop. 转载自:https://www.cnblogs.com/Imageshop/p/3453569.html   ...

  7. node 16位 转24位_C代码实现16位和32位数据字节序转换

    点击上方公众号名称关注,获得更多内容 ✎ 编 者 悟 语 每天给自己一个存在的意识,这样才会有一颗认真的心. 文 章 导 读 今天给大家用C代码实现下大小端字节序的转换代码,感谢的小伙伴可以拿下来撸一 ...

  8. RGB颜色转换为16进制颜色

    RGB颜色值转换为16进制颜色值,主要是将 R.G.B 值分别转换为对应的十六进制值 例子: 输入:rgb(238, 208, 157) 输出:#eed09d 代码如下: function color ...

  9. java读取16位深png_读取16位灰度TIFF

    我正在尝试使用小型C程序读取16位灰度TIFF文件(BitsPerSample = 16),以转换为浮点数数组以供进一步分析 . 根据 Headers 信息,像素数据在2048×2048像素的单个条带 ...

  10. 将32位浮点音频转换为16位

    (注:只改变量化位数,并不改变采样率和声道数等信息)  弄了一个下午加一个早上,终于算是弄完了,效果非常不错,音质无损失,之前一直用ffmpeg做重采样处理,但是一直是各种艰辛,各种奔溃,很无语,最后 ...

最新文章

  1. 不能混淆_生物易混淆知识点小汇总,是你不能混淆的知识哦丨高中
  2. Linux 命令 sudo 用法及配置解析
  3. 高等专科学校计算机,理工类计算机专业较好的高等专科学校
  4. Tomcat安装及Eclipse配置教程
  5. 【渝粤题库】陕西师范大学500001 理论力学 作业(专升本)
  6. React Navigation (v2)
  7. Linux逻辑盘卷管理LVM
  8. http服务器和application服务器区别
  9. [转载]自动化行业信讯_史蒂文森sun_新浪博客
  10. java发送请求_Java模拟HTTP的Get和Post请求(增强)
  11. Python数据挖掘学习6卡方检验
  12. win10专业版关闭Windows Defender Antivirus
  13. jQuery UI插件之datepicker的自定义设置
  14. 苏雅欣课后作业四 个人总结
  15. 最新苹果同步器技术-手机群控操作-脚本录制分屏控制-实时同步操作一系列APP功能解析分享
  16. Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第一篇)
  17. 苹果在win7无法连接服务器未响应,iPhone连接电脑无反应如何解决_苹果手机连接电脑没有反应解决教程...
  18. 《毛毛虫团队》第三次作业:团队项目的原型设计
  19. 2022年危险化学品经营单位安全管理人员上岗证题目模拟考试平台操作
  20. Linux常用命令大全(冰河世纪到现在最全的收集)

热门文章

  1. 刘强东带到石头村什么宝贝?飞翔鸽、“村长刘”品牌、歌唱家!
  2. 中国历史上最美的十首古诗词,美到了极致
  3. 网心科技 | 三分钟带你了解中国CDN发展史
  4. mysql查询耗时操作_mysql记录耗时的sql实例详解
  5. LaTeX \subfloat 引用子图片使用小括号
  6. 云栖大会 mysql_【资料合集】2018云栖大会•深圳峰会回顾:PDF下载
  7. 麒麟服务器系统编译raid驱动
  8. php 自适应 博客,三种方法让网站背景自动适应各浏览器大小
  9. iOS的高德地图标注特定位置
  10. Oracle 绑定变量窥视