ANSI转义码SGR 38 - 使用参数2;r;g;b设置前景色,能否与打印函数一起使用? 当然,使用代码33的示例是
OKBLUE = '\033[94m'
我想使用038,以便能够使用任何RGB颜色。那可行吗?
我已经尝试过了。
GREEN = '\038[2;0;153;0m'
ENDC = '\033[0m'
print(f"{GREEN} some text {ENDC}")
期望将“一些文本”的颜色更改为绿色
ANSI转义码SGR 38 - 使用参数2;r;g;b设置前景色,能否与打印函数一起使用? 当然,使用代码33的示例是
OKBLUE = '\033[94m'
我想使用038,以便能够使用任何RGB颜色。那可行吗?
我已经尝试过了。
GREEN = '\038[2;0;153;0m'
ENDC = '\033[0m'
print(f"{GREEN} some text {ENDC}")
期望将“一些文本”的颜色更改为绿色
要在终端中使用RGB色彩空间*,可以使用以下转义序列:
# Print Hello! in lime green text.
print('\033[38;2;146;255;12mHello!\033[0m')
# ^
# |
# \ The 38 goes here, to indicate a foreground colour.
# Print Hello! in white text on a fuschia background.
print('\033[48;2;246;45;112mHello!\033[0m')
解释:
\033[38;2;146;255;12mHello!\033[0m
^ ^ ^ ^ ^ ^ ^ ^ ^
| | | R G B | | |
| | | | | | \ Reset the colour to default
| | | | | |
| | | | | \ Escape character
| | | | |
| | | \ R;G;B \ Text to print
| | |
| | \ Indicate the following sequence is RGB
| |
| \ Code to instruct the setting of an 8 or 24-bit foreground (text) colour
|
\ Escape character
38;2
表示后面会跟随一个RGB(前景色)序列。而使用38;5
则表示后面的(前景)颜色值来自于256色表。\033
(八进制)或\x1b
(十六进制)对应ASCII表中的ESC字符,用于引入终端文本着色的转义序列。而38
用于指示接下来的8或24位颜色被设置为前景色,(在转义序列被引入之后)。此外,48
可以用于设置背景色,就像上面的代码示例一样。pip install colorist
安装该包,并输入以下命令:from colorist import ColorRGB, BgColorRGB
dusty_pink = ColorRGB(194, 145, 164)
bg_steel_blue = BgColorRGB(70, 130, 180)
print(f"I want to use {dusty_pink}dusty pink{dusty_pink.OFF} and {bg_steel_blue}steel blue{bg_steel_blue.OFF} colors inside this paragraph")
如果你更喜欢使用HSL来定义颜色,那也是可以的,因为Colorist会将其转换为RGB。from colorist import ColorHSL, BgColorHSL
mustard_green = ColorHSL(60, 56, 43)
bg_steel_gray = BgColorHSL(190, 2, 49)
print(f"I want to use {mustard_green}mustard green{mustard_green.OFF} and {bg_steel_gray}steel blue{bg_steel_gray.OFF} colors inside this paragraph")
或者类似地,你也可以用十六进制来定义颜色:from colorist import ColorHex, BgColorHex
watermelon_red = ColorHex("#ff5733")
bg_mint_green = BgColorHex("#99ff99")
print(f"I want to use {watermelon_red}watermelon pink{watermelon_red.OFF} and {bg_mint_green}mint green{bg_mint_green.OFF} colors inside this paragraph")
请注意,并非所有终端都支持高级RGB颜色,因为它们并不是最初的ANSI规范的一部分。您可能需要尝试不同的终端,找到适合您的那一个。print('\033[90m' + 'hello' + '\033[96m' + ' there?' )
\033
作为8位SGR代码的转义字符。控制权在38之内,进入转义序列。您可以参考此维基页面中的“描述> SGR参数>颜色> 8位”部分以获取更多详细信息。 - S3DEV30-37 设置前景色
。 这就是我想要使用的行,其中包括:38 设置前景色 下一个参数是5;n或2;r;g;b
。 所以我想到应该用38替换33并添加额外的参数。从您的评论中,我了解到需要同时使用\033和\038。对吗?我认为我同意@tripleee的看法。 - Lupascu Gabriel Cristian