将 10 进制颜色或十六进制颜色转换为 JavaScript 中的 ANSI 颜色?
Convert base 10 colors OR hex colors to ANSI colors in JavaScript?
标题几乎说明了一切。我需要知道一种方法可以将 10 进制颜色或十六进制颜色转换为我可以在终端中使用的 ANSI 颜色(例如 \u001b[31m
,ANSI 颜色为红色)。
JavaScript 解决方案或 JS 库都很棒!
查看 ANSI Escape Codes 我看到了一种在 ANSI 中使用 RGB 颜色的方法,因此您可以创建一个采用十六进制颜色并将其转换为 RGB 的函数,我假设您使用 10 进制颜色已经意味着RGB
所以我们可以通过查看第一个字符是否为“#”
来检查是否有十六进制颜色
if (color.toString()[0] == "#") { /* then you have yourself a hex color, let's make it RGB*/ }
function hexToRGB(color) {
color = color.toString();
var r = parseInt(color.substring(1, 3), 16);
var g = parseInt(color.substring(3, 5), 16);
var b = parseInt(color.substring(5, 7), 16);
return `rgb(${r}, ${g}, ${b})`;
}
所以在那之后你将得到你的 RGB(假设你的十六进制颜色是 #FFFFFF
的形式)
以此为指导获取 RGB 字符串并将其格式化为 ANSI 转义码:
标题几乎说明了一切。我需要知道一种方法可以将 10 进制颜色或十六进制颜色转换为我可以在终端中使用的 ANSI 颜色(例如 \u001b[31m
,ANSI 颜色为红色)。
JavaScript 解决方案或 JS 库都很棒!
查看 ANSI Escape Codes 我看到了一种在 ANSI 中使用 RGB 颜色的方法,因此您可以创建一个采用十六进制颜色并将其转换为 RGB 的函数,我假设您使用 10 进制颜色已经意味着RGB 所以我们可以通过查看第一个字符是否为“#”
来检查是否有十六进制颜色if (color.toString()[0] == "#") { /* then you have yourself a hex color, let's make it RGB*/ }
function hexToRGB(color) {
color = color.toString();
var r = parseInt(color.substring(1, 3), 16);
var g = parseInt(color.substring(3, 5), 16);
var b = parseInt(color.substring(5, 7), 16);
return `rgb(${r}, ${g}, ${b})`;
}
所以在那之后你将得到你的 RGB(假设你的十六进制颜色是 #FFFFFF
的形式)
以此为指导获取 RGB 字符串并将其格式化为 ANSI 转义码: