精易论坛

标题: RGB转RGB565颜色 [打印本页]

作者: 小逸老师    时间: 2024-8-14 15:33
标题: RGB转RGB565颜色
本帖最后由 小逸老师 于 2024-8-14 15:36 编辑

使用了精易模块进行便捷的进制转换。
RGB565色其实也叫:16位颜色
RGB565色通常在硬件屏幕中使用的比较多。
RGB565的含义就是:R红5位、G绿6位、B蓝5位。
例如:#FF00FF这种16进制的颜色大家应该都不陌生,其中按2位对应红FF绿00蓝FF。
操作方式:
1、将红绿蓝三个16进制文本分别取出并转换为2进制。
例如:FF=11111111   R取出后5位
例如:00=00000000   G取出后6位
例如:FF=11111111   B取出后5位
2、将取出的R5/G6/B5组合起来得到1111100000011111
3、将第2步取出组合起来的16位字符进行2进制转16进制得到f81f就是RGB565颜色值了,是否需要增加0x标志(0xf81f)就要看你使用的场景了

此例子以比较笼统的方式进行编写,目的是为了容易看懂、看懂后你可以直接进行简化处理、例如直接16进制转到2进制后去除多余的位就行
注意:因为是RGB565,也就是16位色,所以能支持的颜色比较少,如果有颜色返回的值是0,也就是不支持该颜色,此时需要自行处理以相近且支持的颜色进行填充


TORGB565.e (952.24 KB, 下载次数: 20)

作者: 笨来无一悟    时间: 2024-8-14 15:45
功德无量
作者: 神女软件定制    时间: 2024-8-14 15:52
之前遇到过这个需求,用汇编整的
作者: 小逸老师    时间: 2024-8-14 15:58
神女软件定制 发表于 2024-8-14 15:52
之前遇到过这个需求,用汇编整的

我也是最近用组态屏的时候才遇到的,一共只提供128k个地址,modbus还占用了2047个地址。这玩意用16位颜色真是能省则省,与24颜色也就差8位。
作者: kiss0459    时间: 2024-8-14 16:35
RGB转RGB565颜色
作者: 2521304915    时间: 2024-8-14 17:14
感谢感谢,非常需要
作者: 艾玛克138    时间: 2024-8-14 21:14
感谢分享,很给力!~
作者: 查过    时间: 2024-8-15 08:01
已经顶贴,感谢您对论坛的支持!
作者: 豆豆灰常开心    时间: 2024-8-15 08:05
已经顶贴,感谢您对论坛的支持!
作者: year1970    时间: 2024-8-15 08:25
感谢分享
作者: please    时间: 2024-8-15 09:36
感谢分享,支持开源!!!
作者: 真冬    时间: 2024-8-15 17:09
本帖最后由 真冬 于 2024-8-15 17:17 编辑


https://rgbcolorpicker.com/565


  
子程序名返回值类型公开备 注
RGB24转RGB565整数型 
参数名类 型参考可空数组备 注
RGB24整数型
变量名类 型静态数组备 注
RGB字节集 
RGB = 到字节集 (RGB24)
RGB [1]右移 (RGB [1], 3)
RGB [1]选择 (RGB [1] > 31, 31, RGB [1])
RGB [2]右移 (RGB [2], 2)
RGB [2]选择 (RGB [2] > 63, 63, RGB [2])
RGB [3]右移 (RGB [3], 3)
RGB [3]选择 (RGB [3] > 31, 31, RGB [3])
返回 (位或 (左移 (RGB [1], 11), 左移 (RGB [2], 5), RGB [3]))



你写那么复杂也没把颜色转对啊?你写完代码不试试多选几个颜色?

选择好几个颜色你写的都输出0x0


作者: 396384183    时间: 2024-8-17 01:07

这个好啊 支持一下
作者: 天使与恶魔    时间: 2024-8-20 17:12
6666666666666
作者: 熊不熊    时间: 2024-12-4 18:35
感谢分享,很给力!~
作者: comeeeg    时间: 2025-6-4 08:21
感谢开源,找了很久




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4