You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取256色调色板终端颜色对应的RGB数值

终端调色板色号转RGB实现方案

实现原理

绝大多数兼容Xterm规范的现代终端模拟器都支持通过OSC 4转义序列查询指定调色板索引对应的RGB值,无需截屏取色。

具体实现

你可以直接在bash中定义如下函数,即可实现你需要的palette-to-rgb命令:

palette-to-rgb() {
    # 校验输入参数
    if [[ $# -ne 1 || ! $1 =~ ^[0-9]+$ || $1 -lt 0 || $1 -gt 255 ]]; then
        echo "用法: palette-to-rgb <色号0-255>" >&2
        return 1
    fi
    local color_idx=$1
    # 向终端发送调色板查询请求
    echo -en "\e]4;${color_idx};?\e\\"
    # 读取终端返回的响应,超时0.1秒避免不支持的终端卡住
    local resp
    IFS=';' read -r -s -t 0.1 -d '\' _ _ resp < /dev/tty
    if [[ -z $resp ]]; then
        echo "错误:当前终端不支持调色板查询或响应超时" >&2
        return 1
    fi
    # 解析返回的rgb:rrrr/gggg/bbbb格式的结果
    local r_hex=${resp:4:2} g_hex=${resp:9:2} b_hex=${resp:14:2}
    # 输出十六进制格式的颜色值,需要rgb()格式可替换为下一行的注释内容
    echo "#${r_hex}${g_hex}${b_hex}"
    # echo "rgb($((16#${r_hex})), $((16#${g_hex})), $((16#${b_hex})))"
}

使用方法

  1. 将上述函数代码复制到你的~/.bashrc文件中
  2. 执行source ~/.bashrc让配置生效
  3. 直接运行命令即可查询对应色号的RGB值,示例:
palette-to-rgb 74

运行后会直接输出对应十六进制颜色码,比如#5fafd7。

注意事项

  • 仅支持兼容Xterm OSC 4扩展的终端,目前GNOME Terminal、Konsole、iTerm2、Alacritty、WezTerm等主流终端均已支持
  • 如果需要输出rgb(R,G,B)格式,将函数最后输出的代码替换为注释里的对应内容即可

内容的提问来源于stack exchange,提问作者yolenoyer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 06:27:00