首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >预先存在的高对比度调色板来自ANSI颜色集,用于终端应用?

预先存在的高对比度调色板来自ANSI颜色集,用于终端应用?
EN

Stack Overflow用户
提问于 2022-11-29 03:47:13
回答 2查看 25关注 0票数 0

希望通过使用颜色(特别是跟踪给定的类来自哪个模块)在Rich中传递更多信息。

在网络上,很容易找到适合对比的调色板,而不是美学。这是一个6色例。那就是使用RGB/HSL规范来驱动CSS的问题。

富在rich.colors.ANSI_COLOR_NAMES中有一个很好的ANSI颜色列表。但没有迹象表明什么颜色将构成一个高对比度10-12色调色板.

是否有这样的列表,用于终端应用程序的ANSI颜色?或者我应该找到一个网络调色板,并使用rich.colors.Color.from_rgb()来构建这样一个调色板?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-30 13:43:57

考虑使用Rich的主题为您的颜色命名。这样你就不用参考你的名单了。你可以做print("Hello [color3]World![/]")

票数 1
EN

Stack Overflow用户

发布于 2022-11-29 04:14:25

好吧,好吧,这很简单,不需要和from_rgb混在一起,因为样式支持

在阅读了威尔的答案后,我修改了我最初的解决方案,以使用保存的主题。再次感谢你的图书馆,威尔!

或者,您可以使用类似CSS的语法来指定颜色,颜色后面跟着三对十六进制字符,或者以RGB格式指定三个十进制整数。以下两行都以相同的颜色(紫色)打印“Hello”: console.print("Hello", style="#af00ff")

找到了一个20个元素列表这里 (最后2个是黑白的,我跳过了)。

hivis.theme.ini

代码语言:javascript
复制
[styles]

;  High constrast palette from 
;  https://sashamaps.net/docs/resources/20-colors/

hivis0 = #e6194b
hivis1 = #3cb44b
hivis2 = #ffe119
hivis3 = #4363d8
hivis4 = #f58231
hivis5 = #911eb4
hivis6 = #46f0f0
hivis7 = #f032e6
hivis8 = #bcf60c
hivis9 = #fabebe
hivis10 = #008080
hivis11 = #e6beff
hivis12 = #9a6324
hivis13 = #fffac8
hivis14 = #800000
hivis15 = #aaffc3
hivis16 = #808000
hivis17 = #ffd8b1
hivis18 = #000075
hivis19 = #808080
;hivis20 = #ffffff
;hivis21 = #000000

script.py

代码语言:javascript
复制
from rich.console import Console
from rich.theme import Theme

with open("hivis.theme.ini") as fi:
    theme = Theme.from_file(fi)

palette = [name for name  in theme.styles.keys() if name.startswith("hivis")]

console = Console(theme=theme)
console.print("[hivis1] First Hivis.  [hivis2] Second Hivis.")
for ix, rgb in enumerate(palette):
    console.print(f"[{palette[ix]}] {rgb}")

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74608971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档