【问题标题】:How does ncurses' init_color function translate to traditional rbg colors?ncurses 的 init_color 函数如何转换为传统的 rbg 颜色?
【发布时间】:2023-04-09 21:34:01
【问题描述】:

抱歉,标题措辞奇怪。我想知道 ncurses init_color 函数如何将其输入映射到颜色。本质上,大多数开发人员习惯于在 0 - 255 范围内用红色、绿色和蓝色表示颜色,但 init_color 采用 0 - 1000 范围内的 int。

例如:

如果我想在 ncurses 中获得颜色 (75, 0, 130),我会调用init_color(COLOR_NAME, 300, 0, 520)吗?

【问题讨论】:

    标签: ncurses


    【解决方案1】:

    短:

    (n) * 1000 / 256
    

    这和你的数字有点不同:

    293 0 508
    

    long:这当然假设终端描述被写入匹配 ncurses 的documentation。但假设来自X/Open Curses

    init_color() 函数在支持重新定义颜色的终端上重新定义颜色编号颜色,使其具有由 red 指定的红色、绿色和蓝色强度分量、greenblue。调用 init_color() 还会将屏幕上出现的所有指定颜色更改为新定义。

    color_content()函数识别颜色编号color的强度分量。它将这种颜色的红、绿、蓝强度分量分别存储在红、绿、蓝所指向的地址中。

    对于这两个函数,color 参数必须在 0 到 COLORS-1 的范围内,包括 COLORS-1。有效的强度值范围从 0(无强度分量)到并包括 1000(该分量的最大强度)。

    【讨论】:

      猜你喜欢
      • 2012-06-04
      • 2019-09-02
      • 2020-01-16
      • 2022-12-19
      • 2018-12-05
      • 2015-08-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-21
      相关资源
      最近更新 更多