首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将十六进制数转换为颜色值

将十六进制数转换为颜色值
EN

Stack Overflow用户
提问于 2020-04-23 18:55:41
回答 1查看 175关注 0票数 0

我有一个LCD固件,我正在尝试通过添加更多的颜色来修改它。我找到了如下颜色定义,

代码语言:javascript
运行
复制
#define WHITE                 0xFFFF
#define BLACK                 0x0000
#define BLUE                  0x001F
#define GBLUE                 0X07FF
#define RED                   0xF800
#define MAGENTA               0xF81F
#define GREEN                 0x07E0
#define CYAN                  0x7FFF
#define YELLOW                0xFFE0
#define BROWN                 0XBC40
#define BRRED                 0XFC07
#define GRAY                  0X8430

如何将这些值转换为实际的十六进制颜色值?例如,青色列为0x7FFF,但青色的十六进制颜色值为#00FFFF

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-23 19:04:11

这是RGB565颜色格式。红色为5位,绿色为6位,蓝色为5位。

代码语言:javascript
运行
复制
WORD red_mask = 0xF800;
WORD green_mask = 0x7E0;
WORD blue_mask = 0x1F;
BYTE red_value = (pixel & red_mask) >> 11;
BYTE green_value = (pixel & green_mask) >> 5;
BYTE blue_value = (pixel & blue_mask);

另一种方式是:

代码语言:javascript
运行
复制
// Assuming the color values have been truncated to the correct number of bits:
WORD pixel565 = (red_value << 11) | (green_value << 5) | blue_value;

参考:https://docs.microsoft.com/en-us/windows/win32/directshow/working-with-16-bit-rgb

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61385513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档