Colors 将十六进制数转换为颜色值
我有一个LCD固件,我正试图通过添加更多颜色来修改它。我发现颜色定义如下:Colors 将十六进制数转换为颜色值,colors,hex,Colors,Hex,我有一个LCD固件,我正试图通过添加更多颜色来修改它。我发现颜色定义如下: #define WHITE 0xFFFF #define BLACK 0x0000 #define BLUE 0x001F #define GBLUE 0X07FF #define RED 0xF800 #define MAGENTA
#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
这是RGB565颜色格式。5位表示红色,6位表示绿色,5位表示蓝色
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);
另一方面:
// Assuming the color values have been truncated to the correct number of bits:
WORD pixel565 = (red_value << 11) | (green_value << 5) | blue_value;
//假设颜色值已被截断为正确的位数:
单词像素565=(红色_值