是否可以使用rgb或十六进制颜色为终端中的java输出着色?

是否可以使用rgb或十六进制颜色为终端中的java输出着色?,java,colors,output,Java,Colors,Output,我正在尝试为我的java游戏输出彩色输出,这只是使用终端,我想输出彩色的东西,但使用RGB值或十六进制颜色的精确颜色我怎么做我已经看到了这样的东西的颜色 “\u001B[0m” 但是没有足够的多样性,我该怎么办?ANSI转义颜色代码有几个不同的变体。最古老和最广泛支持的是3位和4位颜色。但是,该标准还有两个更新的版本,提供了更多的颜色: 8位(256色) 24位“真彩色” 对每个颜色范围的支持取决于您运行的终端实现。至少在以下终端上支持24位“真彩色”前景和背景色:Xterm、KDE的Kon

我正在尝试为我的java游戏输出彩色输出,这只是使用终端,我想输出彩色的东西,但使用RGB值或十六进制颜色的精确颜色我怎么做我已经看到了这样的东西的颜色

“\u001B[0m”


但是没有足够的多样性,我该怎么办?

ANSI转义颜色代码有几个不同的变体。最古老和最广泛支持的是3位和4位颜色。但是,该标准还有两个更新的版本,提供了更多的颜色:

  • 8位(256色)
  • 24位“真彩色”
对每个颜色范围的支持取决于您运行的终端实现。至少在以下终端上支持24位“真彩色”前景和背景色:Xterm、KDE的Konsole、iTerm和所有基于libvte的终端(包括GNOME终端)

据介绍,大约截至2016年9月22日,Windows 10控制台已更新为支持“24位RGB真彩色”(自Windows 10 Insiders Build#14931起)。本文并未明确说明此24位彩色与ANSI兼容,但它确实参考了使用“Windows Linux子系统(WSL)”运行“一些Linux脚本和工具来演示控制台新的24位颜色支持”。因此,我假设它与ANSI兼容

可以找到ANSI颜色标准的完整Wiki文章


用法:

对从未使用过ANSI转义码的用户进行快速回顾。若要使用ANSI转义序列,请将其视为字符串,并将其打印到控制台。这将更改控制台的样式,以显示在转义序列之后打印的所有文本

可以重置样式,但打印转义序列:

\033[0m
这会将所有样式重置为默认值

Bash脚本4位示例:

echo -e "\033[31mHello, World!\033[0m"
String escapeCode = "\033[31m";
String resetCode = "\033[0m";

System.out.println(escapeCode + "Hello, World!");
System.out.println("Some more stuff I want to say.");
System.out.println(resetCode);
System.out.println("Now styling is default again.");
Java示例4位示例:

echo -e "\033[31mHello, World!\033[0m"
String escapeCode = "\033[31m";
String resetCode = "\033[0m";

System.out.println(escapeCode + "Hello, World!");
System.out.println("Some more stuff I want to say.");
System.out.println(resetCode);
System.out.println("Now styling is default again.");
前言:

ANSI转义序列以转义字符开头,但该字符可以用几种不同的方式书写,具体取决于您希望如何格式化数字。以下所有内容都是等效的:

\033
\u001B

//The character with the numeric value of 27.
//Example in Java:
char escapeChar = (char) 27; 
8位(256色)

文本颜色(前景)

背景色

\033[48;5;__m
\033[48;2;<R>;<G>;<B>m
“m”终止转义序列。用0-255之间的数字替换“\uuu”。有关转换表,请参阅

Ex (Teal - FG): \033[38;5;79m
Ex (Pink - FG): \033[38;5;207m

Ex (Teal - BG): \033[48;5;79m
Ex (Pink - BG): \033[48;5;207m
24位“真彩色”

文本颜色(前景)

你也可以把它们组合成一个巨大的逃逸序列

Ex (Pink BG & Teal FG): \033[48;2;255;143;184;38;2;27;161;147m
也可以使用其他文本装饰,如下划线、删除线、粗体、淡色、反转前景和背景等。请参阅

注意:SGR代码2和5在操作8位和24位颜色代码时被覆盖。
例如:“38;5;”表示8位前景文本颜色,即使它本身,“5”表示缓慢闪烁。

您所说的“多样性不足”是什么意思?终端文本可用的颜色取决于终端。这是否回答了您的问题?我需要精确的颜色和“\u001B[0m”“…这样,只允许8种颜色。你可以在Ssr1369链接上阅读答案吗?特别是第一个链接中的维基百科链接。
Ex (Pink BG & Teal FG): \033[48;2;255;143;184;38;2;27;161;147m