C:艳黄色和亮绿色(ncurses)?

时间:2013-02-27 05:45:49

标签: c ncurses

我一直在寻找漂亮的颜色,例如mc有黄色和绿色。

在ncurses中,您可以指定那些RGB:

  

10.2。更改颜色定义

     

函数init_color()可用于更改的rgb值   最初由curses定义的颜色。说你想减轻   红色的强度由一个小的。然后你可以使用这个功能   如

init_color(COLOR_RED, 700, 0, 0);
/* param 1     : color name
 * param 2, 3, 4 : rgb content min = 0, max = 1000 */

我找不到明亮的黄色或亮绿色。 Aren默认包含在ncurses中吗?

此致 乌尔里希

5 个答案:

答案 0 :(得分:1)

你可以拥有“完整”的颜色,但你需要重新编译你的ncurses来支持它(并且有一些可以显示它的东西)

  

“要编译具有256色支持的NCurses,请使用此选项:”

--enable-ext-colors

ref:http://www.c-for-dummies.com/ncurses/256color.php根据NCurses'维护者和Dan Gookin的Thomas Dickey的说法

Color   Function                        Constant Name
0       init_color(0,0,0,0);            COLOR_BLACK
1       init_color(0,1000,0,0);         COLOR_RED
2       init_color(0,0,1000,0);         COLOR_GREEN
3       init_color(0,1000,1000,0);      COLOR_YELLOW
4       init_color(0,0,0,1000);         COLOR_BLUE
5       init_color(0,1000,0,1000);      COLOR_MAGENTA
6       init_color(0,0,1000,1000);      COLOR_CYAN
7       init_color(0,1000,1000,1000);   COLOR_WHITE
  • NCurses可以获得超过标准8(或16)种颜色...

您的TERM环境变量也可能xterm尝试将其更改为xterm-256color

答案 1 :(得分:0)

终端支持的颜色和颜色对(bg + fg)由函数返回:

COLOR()
COLOR_PAIRS()

正如solusipse正确指出的那样,默认情况下应该有8种颜色(curses.h中只定义了8种颜色)。

终端可能支持init_color()呼叫,但很可能不会。您可以检查它发出呼叫:

can_change_color().

Pubby正确地指出,粗体(使用A_BOLD)可以使文本更亮,允许您总共16种颜色,但仅限于前景色。

在我的系统上,xtermgnome-terminalkonsole的行为完全相同;它们报告8种颜色,64种颜色对,can_change_color()为假,A_BOLD属性确实减轻了fg颜色。

答案 2 :(得分:0)

   main()
   {
    initscr();
    if (start_color() == OK)
    {
        init_pair (1, COLOR_RED, COLOR_GREEN);
        attron (COLOR_PAIR (1));
        if (init_color (COLOR_RED, 0, 0, 1000) == OK)
            addstr ("BLUE ON GREEN");
        else
            addstr ("RED ON GREEN");
        getch ();
    }
    endwin();
   }

答案 3 :(得分:0)

你可以做的就是创建一个名称为

的新颜色

COLOR_BRIGHT_YELLOW到颜色编号8

COLOR_BRIGHT_GREEN到颜色编号9

但我从来没有做过,也没有那么多记录。

答案 4 :(得分:0)

如果你想要鲜艳的颜色,那么你必须使用:

attrxxx(COLOR_PAIR(COLOR_xxxxx) | A_BOLD)

因此,为了获得亮黄色,可以使用:

attr_t color_bright_yellow = COLOR_PAIR(COLOR_YELLOW) | A_BOLD;

等。
(注意,如果你想要更多颜色,请编译[更具体,./configure] ncurses并启用--with-ext-colors。)