C: conio 颜色到十六进制 code/RGB
C: conio colors to Hex code/RGB
在我的应用程序中,我使用了 conio 库中的函数 textbackground()。我有 16 种可用颜色:
#define BLACK 0
#define BLUE 1
#define GREEN 2
#define CYAN 3
#define RED 4
#define MAGENTA 5
#define BROWN 6
#define LIGHTGRAY 7
#define DARKGRAY 8
#define LIGHTBLUE 9
#define LIGHTGREEN 10
#define LIGHTCYAN 11
#define LIGHTRED 12
#define LIGHTMAGENTA 13
#define YELLOW 14
#define WHITE 15
我如何将这些颜色转换为十六进制代码和 RGB,或者只是在哪里可以找到这些颜色的 RGB/hex 代码(我有一个 int 二维数组,其中单元格的值从 0 到 15,这些值表示像素颜色。现在我需要将其保存为 BMP 和 XPM2 格式)。
这些是 EGA/VGA 颜色,对吗?
这里的问题是,EGA 确实有每种颜色 2 位,VGA+ 最多 8 位。实际值有些不同。但是这个颜色应该没问题:
idx 0xrrggbb:
0 0x000000
1 0x0000aa
2 0x00aa00
3 0x00aaaa
4 0xaa0000
5 0xaa00aa
6 0xaaaa00 // Windows (dark yellow)
6 0xaa5500 // EGA/VGA (brown)
7 0xaaaaaa
8 0x555555
9 0x5555ff
10 0x55ff55
11 0x55ffff
12 0xff5555
13 0xff55ff
14 0xffff55
15 0xffffff
最简单但不是最好的解决方案是基于像素值制作一个 switch() 并通过从页面硬编码将其设置为更正 hex/rgb 值,例如 color-hex.com 你可以在那里找到所有流行的颜色表示。
在我的应用程序中,我使用了 conio 库中的函数 textbackground()。我有 16 种可用颜色:
#define BLACK 0
#define BLUE 1
#define GREEN 2
#define CYAN 3
#define RED 4
#define MAGENTA 5
#define BROWN 6
#define LIGHTGRAY 7
#define DARKGRAY 8
#define LIGHTBLUE 9
#define LIGHTGREEN 10
#define LIGHTCYAN 11
#define LIGHTRED 12
#define LIGHTMAGENTA 13
#define YELLOW 14
#define WHITE 15
我如何将这些颜色转换为十六进制代码和 RGB,或者只是在哪里可以找到这些颜色的 RGB/hex 代码(我有一个 int 二维数组,其中单元格的值从 0 到 15,这些值表示像素颜色。现在我需要将其保存为 BMP 和 XPM2 格式)。
这些是 EGA/VGA 颜色,对吗?
这里的问题是,EGA 确实有每种颜色 2 位,VGA+ 最多 8 位。实际值有些不同。但是这个颜色应该没问题:
idx 0xrrggbb:
0 0x000000
1 0x0000aa
2 0x00aa00
3 0x00aaaa
4 0xaa0000
5 0xaa00aa
6 0xaaaa00 // Windows (dark yellow)
6 0xaa5500 // EGA/VGA (brown)
7 0xaaaaaa
8 0x555555
9 0x5555ff
10 0x55ff55
11 0x55ffff
12 0xff5555
13 0xff55ff
14 0xffff55
15 0xffffff
最简单但不是最好的解决方案是基于像素值制作一个 switch() 并通过从页面硬编码将其设置为更正 hex/rgb 值,例如 color-hex.com 你可以在那里找到所有流行的颜色表示。