2

mc の黄色や緑のような素敵な色を探していました。

ncurses では、これらの RGB を指定できます:

10.2. 色の定義を変更する

関数 init_color() を使用して、最初に curses によって定義された色の RGB 値を変更できます。赤色の強度をわずかに明るくしたいとします。次に、この関数を次のように使用できます

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

鮮やかな黄色や鮮やかな緑色は見つかりませんでした。ncurses にはデフォルトで含まれていませんか?

よろしく、ウルリッヒ

4

5 に答える 5

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

于 2014-06-04T19:54:08.300 に答える
0

あなたができることは、名前を持つ新しい色を作成することです

COLOR_BRIGHT_YELLOW から色番号 8 まで

COLOR_BRIGHT_GREEN を色番号 9 に

しかし、私はそれを作ったことがなく、あまり文書化されていません。

于 2013-03-03T10:33:45.627 に答える
0

端末でサポートされている色と色のペア (bg + fg) の数は、関数によって返されます。

COLOR()
COLOR_PAIRS()

solusipse正しく指摘しているように、デフォルトでは 8 つの色が必要です ( で定義されているのは 8 つだけですcurses.h)。

呼び出しは端末でサポートされている可能性がありますが、init_color()おそらくサポートされていません。次の呼び出しを発行して確認できます。

can_change_color().

Pubbyが正しく指摘したように、太字 ( を使用A_BOLD) を使用するとテキストが明るくなり、前景色のみですが、合計 16 色を使用できます。

私のシステムではxtermgnome-terminalkonsoleはまったく同じように動作します。彼らは、8色、64色のペアcan_change_color()が偽であり、A_BOLD属性が実際にfgの色を明るくしていると報告しています。

于 2013-02-27T10:11:26.797 に答える