我正在寻找一种函数将RGB元组(255, 255, 255
)或HTML十六进制(#FFFFFF
)转换为X11颜色(0...255 int
)以管理Unix终端中的颜色。我查看了互联网,但没有找到类似的东西,所以我要求输入代码或链接到一个网站,其中包含有关如何在Python中执行此操作的代码或信息。将HTML HEX颜色或RGB元组转换为X11颜色
2
A
回答
1
您不能自动转换为x11颜色。
x11颜色基本上只是名称映射到任意RGB值,所以从RGB到x11的唯一方法是反转地图。
如果您想将不在x11中的RGB颜色转换为x11中最接近的匹配,这将非常困难。
+0
附录:这些不是你说的“X11颜色”。它们是* 256色终端仿真器*颜色。 X11本身使用RGB元组和/或可编程颜色映射。 – zwol 2012-01-09 16:01:13
1
如果我理解你的问题,我认为你不能这样做。 RGB元组(及其表示形式为HTML的6位十六进制数字)表示RGB色彩空间中的特定颜色。您提到的Unix终端中的单个整数不是特定颜色,而是颜色表中的索引。例如,一个终端上的颜色15可能是#ff0000,而另一个终端上的#33ff33。两者之间确实没有转换。
1
正如@chepner和@Shawabawa提到的那样,没有从RGB代码或6位十六进制的3元组到8位(0-255)的单个数字的映射。事实上,如果有的话,由于映射是多对一的,所以一些信息将不得不丢失。但是,您可以执行的操作是使用(BASH)颜色代码作为构建Python脚本的起点。例如,下列变量:
txtblk='\e[0;30m' # Black - Regular
txtred='\e[0;31m' # Red
txtgrn='\e[0;32m' # Green
txtylw='\e[0;33m' # Yellow
txtblu='\e[0;34m' # Blue
txtpur='\e[0;35m' # Purple
txtcyn='\e[0;36m' # Cyan
txtwht='\e[0;37m' # White
bldblk='\e[1;30m' # Black - Bold
bldred='\e[1;31m' # Red
bldgrn='\e[1;32m' # Green
bldylw='\e[1;33m' # Yellow
bldblu='\e[1;34m' # Blue
bldpur='\e[1;35m' # Purple
bldcyn='\e[1;36m' # Cyan
bldwht='\e[1;37m' # White
unkblk='\e[4;30m' # Black - Underline
undred='\e[4;31m' # Red
undgrn='\e[4;32m' # Green
undylw='\e[4;33m' # Yellow
undblu='\e[4;34m' # Blue
undpur='\e[4;35m' # Purple
undcyn='\e[4;36m' # Cyan
undwht='\e[4;37m' # White
bakblk='\e[40m' # Black - Background
bakred='\e[41m' # Red
badgrn='\e[42m' # Green
bakylw='\e[43m' # Yellow
bakblu='\e[44m' # Blue
bakpur='\e[45m' # Purple
bakcyn='\e[46m' # Cyan
bakwht='\e[47m' # White
txtrst='\e[0m' # Text Reset
你可以把它变成一个脚本,即
cmd = "export PS1='%s'"
prompt = "%s foo %s bar : "
prompt = prompt % (undred, txtblu)
print cmd % prompt
当我运行的输出,我得到的是这样的:
[email protected]:~/test/color$ python test.py
export PS1='\e[4;31m foo \e[0;34m bar : '
[email protected]:~/test/color$ export PS1='\e[4;31m foo \e[0;34m bar : '
foo bar :
而且现在foo是红色并加下划线的,酒吧是蓝色的。
0
Fabulous可以将任意的RGB颜色映射到最接近的xterm 256色。
相关问题
- 1. 将html或rgb颜色转换为system.drawing.brush
- 2. 如何将RGB颜色或Hex转换为HSB?
- 3. 如何将RGB转换为HTML颜色?
- 4. 将HEX转换为最接近的X11颜色编号
- 5. 如何将HEX颜色转换为smali颜色(Java)?
- 6. 将RGB颜色转换为C中最接近的ACI颜色#
- 7. 将RGB转换为CIELAB颜色空间
- 8. 将RGB颜色转换为OLE_Color
- 9. 将XYZ颜色转换为RGB
- 10. 将Pantone颜色转换为RGB?
- 11. 将颜色名称转换为RGB
- 12. Android - 将ARGB颜色转换为RGB
- 13. 在Python中将RGB颜色元组转换为六位代码
- 14. 平均颜色(X11颜色)
- 15. 如何十六进制颜色转换为RGB颜色(24位)
- 16. 保持颜色转换为RGB?
- 17. 从C转换HEX颜色到RGB结构C
- 18. 将RGBA颜色转换为HTML颜色代码
- 19. 如何将HTML颜色名称转换为Ruby中的RGB值?
- 20. 无法将青色的整数颜色转换为RGB
- 21. php将irc颜色转换为html
- 22. 将rgb颜色转换为最接近的有效CSS3颜色名称
- 23. 将颜色转换为ConsoleColor?
- 24. 转换RGB颜色英文颜色的名称,如与Python
- 25. RGB 24位到16位颜色转换 - 颜色变暗
- 26. 纸张的RGB或html颜色
- 27. CSS - hsl或rgb(a)颜色
- 28. 将图像转换为颜色数组
- 29. 将CMYK PDF转换为专色(颜色)
- 30. 从RGB到YUV的颜色转换(YCoCg)
这不是代码,但它可以帮助你。 http://stackoverflow.com/a/31057489/832708 – BradH 2015-06-25 18:09:33