将 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 转义码: