【问题标题】:Converting a hex number to a color value将十六进制数转换为颜色值
【发布时间】:2020-08-06 16:15:24
【问题描述】:

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

#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

【问题讨论】:

    标签: colors hex


    【解决方案1】:

    这是 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;
    

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

    【讨论】:

      猜你喜欢
      • 2019-10-29
      • 2011-10-19
      • 1970-01-01
      • 2013-08-08
      • 2016-05-11
      • 2015-08-25
      • 1970-01-01
      • 2017-10-30
      • 2012-07-25
      相关资源
      最近更新 更多