2017-04-30 28 views
1

对不起,题目很奇怪。我想知道ncurses init_color函数如何将其输入映射到颜色。从本质上讲,大多数开发人员习惯于以0-255的比例用红色,绿色和蓝色表示颜色,但init_color的取值范围为0-1000。ncurses的init_color函数如何转换为传统的rbg颜色?

例如:

如果我想获得在ncurses的颜色(75, 0, 130),我会打电话init_color(COLOR_NAME, 300, 0, 520)

回答

2

短:

(n) * 1000/256 

这是从你的数字稍有不同:

293 0 508 

长:那当然假定终端描述写入匹配的ncurses' documentation。但前提是X/Open Curses

init_color()功能重新定义色号的颜色,在支持的色彩重新定义终端,具有通过指定的红色,绿色和蓝色的强度部件绿色蓝色。调用init_color()也会将屏幕上指定颜色的所有出现更改为新定义。

color_content()函数标识的颜色数颜色强度的组件。它将这种颜色的红色,绿色和蓝色强度分量分别存储在红色,绿色和蓝色指向的地址中。

对于这两个函数,颜色参数必须位于0到和包括COLORS-1的范围内。有效强度值范围从0(无强度分量)直至并包括(该分量中的最大强度)。