【问题标题】:Convert base 10 colors OR hex colors to ANSI colors in JavaScript?在 JavaScript 中将 10 种颜色或十六进制颜色转换为 ANSI 颜色?
【发布时间】:2021-04-19 23:45:38
【问题描述】:

标题几乎说明了一切。我需要知道一种方法可以将基 10 颜色或十六进制颜色转换为可在终端中使用的 ANSI 颜色(例如\u001b[31m,在 ANSI 颜色中为红色)。

JavaScript 解决方案或 JS 库都很棒!

【问题讨论】:

    标签: javascript node.js colors hex ansi


    【解决方案1】:

    查看ANSI Escape Codes 我看到了一种在 ANSI 中使用 RGB 颜色的方法,因此您可以创建一个采用十六进制颜色并将其转换为 RGB 的函数,我假设您已经表示 RGB 基数为 10 种颜色 所以我们可以通过查看第一个字符是否为“#”来检查我们是否有十六进制颜色

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

    【讨论】:

      猜你喜欢
      • 2019-10-29
      • 2016-12-27
      • 2015-05-19
      • 2015-04-12
      • 2012-11-01
      • 2022-08-10
      • 1970-01-01
      相关资源
      最近更新 更多