30.25 颜色名称

颜色名称是用于指定颜色的文本(通常为字符串)。可以使用 ‘black’、‘white’、‘red’ 等符号化名称;执行 M-x list-colors-display 可查看已定义的名称列表。你也可以使用数值形式指定颜色,例如 ‘#rgb’ 和 ‘RGB:r/g/b’,其中 r 表示红色分量,g 表示绿色分量,b 表示蓝色分量。r 可以使用 1、2、3 或 4 位十六进制数字,此时 gb 也必须使用相同位数,总位数为 3、6、9 或 12 位。(有关 RGB 数值表示颜色的更多细节,请参阅 X 窗口系统文档。)

下列函数用于判断哪些颜色名称有效,以及对应的显示效果。在某些情况下,返回值依赖于选中框架(selected frame),具体说明如下;术语 “选中框架(selected frame)” 的含义可参见 输入焦点

若要读取带补全功能的用户输入颜色名称,可使用 read-color(see read-color)。

Function: color-defined-p color &optional frame

该函数用于判断颜色名称是否有效。有效时返回 t,否则返回 nil。参数 frame 指定查询哪个框架的显示设备;若省略 frame 或其为 nil,则使用选中框架。

注意,该函数不会告知当前使用的显示设备是否真正支持该颜色。在 X 窗口系统下,无论何种显示设备,请求任意已定义颜色都会得到某种结果—通常是设备能渲染的最接近颜色。判断某个框架是否能真实显示某一颜色,请使用 color-supported-p(见下文)。

Function: defined-colors &optional frame

该函数返回在框架 frame(默认为选中框架)上已定义且受支持的颜色名称列表。若 frame 不支持颜色,则返回 nil

Function: color-supported-p color &optional frame background-p

若框架 frame 能够真实显示颜色 color(或至少显示近似色),则返回 t。若省略 frame 或其为 nil,则针对选中框架进行判断。

部分终端为前景和背景支持不同的颜色集。若 background-pnil,表示查询该颜色是否可用作背景色;否则查询是否可用作前景色。

参数 color 必须为有效的颜色名称。

Function: color-gray-p color &optional frame

colorframe 的显示设备上定义为灰色调,则返回 t。若省略 frame 或其为 nil,则针对选中框架进行判断。若 color 不是有效颜色名称,该函数返回 nil

Function: color-values color &optional frame

该函数返回描述颜色 colorframe 上理想显示效果的值。若 color 已定义,返回值为包含三个整数的列表,分别表示红色、绿色和蓝色分量。每个整数理论上取值范围为 0 到 65535,但部分显示设备可能不会使用完整范围。这个三元素列表被称为该颜色的rgb 值

color 未定义,则返回 nil

(color-values "black")
     ⇒ (0 0 0)
(color-values "white")
     ⇒ (65535 65535 65535)
(color-values "red")
     ⇒ (65535 0 0)
(color-values "pink")
     ⇒ (65535 49344 52171)
(color-values "hungry")
     ⇒ nil

颜色值针对 frame 的显示设备返回。若省略 frame 或其为 nil,则返回选中框架显示设备的相关信息。若框架不支持颜色,则返回 nil

Function: color-name-to-rgb color &optional frame

该函数功能与 color-values 相同,但返回 0.0 到 1.0(含)之间的浮点数形式颜色值。

Function: color-dark-p rgb

若由 RGB 三元组 rgb 描述的颜色在白色背景上比深色背景上更易读,则该函数返回非 nil 值。参数 rgb 应为格式为 (r g b) 的列表,每个分量为 0.0 到 1.0(含)之间的浮点数。可使用 color-name-to-rgb 将颜色名称转换为此类列表。