【发布时间】:2012-11-23 03:26:27
【问题描述】:
我正在开发一个带有 TFT 触摸屏的项目,这个屏幕有一个包含的库。但是经过一些阅读,我仍然没有得到任何东西。在库中有一些关于颜色的定义:
/* some RGB color definitions */
#define Black 0x0000 /* 0, 0, 0 */
#define Navy 0x000F /* 0, 0, 128 */
#define DarkGreen 0x03E0 /* 0, 128, 0 */
#define DarkCyan 0x03EF /* 0, 128, 128 */
#define Maroon 0x7800 /* 128, 0, 0 */
#define Purple 0x780F /* 128, 0, 128 */
#define Olive 0x7BE0 /* 128, 128, 0 */
#define LightGrey 0xC618 /* 192, 192, 192 */
#define DarkGrey 0x7BEF /* 128, 128, 128 */
#define Blue 0x001F /* 0, 0, 255 */
#define Green 0x07E0 /* 0, 255, 0 */
#define Cyan 0x07FF /* 0, 255, 255 */
#define Red 0xF800 /* 255, 0, 0 */
#define Magenta 0xF81F /* 255, 0, 255 */
#define Yellow 0xFFE0 /* 255, 255, 0 */
#define White 0xFFFF /* 255, 255, 255 */
#define Orange 0xFD20 /* 255, 165, 0 */
#define GreenYellow 0xAFE5 /* 173, 255, 47 */
#define Pink 0xF81F
这些是 16 位颜色。但是它们如何从:0,128,128(深青色)到 0x03EF。我的意思是,如何将 16 位颜色转换为 uint16?这不需要在代码中有 anwser,因为我只想在库中添加一些颜色。一个在线转换器的链接(我找不到)也可以:)
谢谢
【问题讨论】:
-
每个组件有多少位?另外,发布一些红色的颜色和白色的颜色。
-
什么意思,“如何将 16 位颜色转换为 uint16?”值 0x03EF 不是 uint16 变量的合理初始化器吗?
-
我的意思是 RGB 到 Uint 16 的值,所以如果你有 R=128, G=128, B=0 你如何将它转换为 uint 16 ;)
-
> 一个在线转换器的链接(我找不到)也可以 :) 它可能比你的问题最新,但如果它对其他人有帮助,请让我把它留在这里。 .barth-dev.de/online/rgb565-color-picker/#
标签: c++ colors color-picker 16-bit