Emacs lisp:获取面部的RGB组件?

时间:2014-02-05 09:48:27

标签: emacs elisp

我最近切换到了Emacs主干和region脸 颜色改变了。 我无法在不知道之前的情况下改变它。

所以我启动了emacs24.3并看到它是“gtk_selection_bg_color”。 此颜色名称在主干中不再有效。 我用截图> gimp-> eyedrop方法发现颜色为“f9b593”, 但是我想知道如何在Elisp中这样做,例如

之类的东西
(get-face-background-rgb 'region)
;; "f9b593"

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

您可以使用color-value

  

color-values是`faces.el'中编译的Lisp函数。 (色值   颜色和可选的FRAME)

     

在帧FRAME上返回名为COLOR的颜色的描述。该   value是整数RGB值的列表 - (RED GREEN BLUE)。这些价值观   似乎范围从0到65280或65535,具体取决于系统;   白色是(65280 65280 65280)或(65535 65535 65535)。如果FRAME是   省略或为零,使用选定的框架。如果FRAME无法显示COLOR,   价值是零。如果COLOR是符号“未指定”或其中之一   字符串“unspecified-fg”或“unspecified-bg”,值为nil。

要获得面部颜色,您可以使用face-foregroundface-background。在您的情况下,您可以使用:

 (color-values (face-background 'region))

答案 1 :(得分:1)

您可以使用图书馆eyedropper.el或图书馆palette.el ---请参阅Color Palette ---获取脸部颜色。您可以使用库palette来探索颜色,提出类似但略有不同的颜色等。您可以使用库hexrgb.el来检查和修改颜色的RGB组件。