如何在Linux终端/图片/X窗口展示RGB十六进制颜色序列?
三种查看RGB十六进制颜色的单行Shell命令
1. 终端内直接展示
使用ANSI 24位颜色代码,在终端中显示带对应背景色的色块:
COLORS="0x004586 0xff420e 0xffd320 0x579d1c 0x7e0021 0x83caff 0x314004 0xaecf00 0x4b1f6f 0xff950e 0xc5000b 0x0084d"; for c in $COLORS; do hex=$(echo "$c" | sed 's/^0x//' | awk '{print substr($0, length($0)-5, 6)}' | awk '{printf "%06s", $0}' | tr ' ' '0'); printf "\e[48;2;%d;%d;%dm \e[0m" 0x${hex:0:2} 0x${hex:2:2} 0x${hex:4:2}; done; echo
说明:自动处理带/不带0x前缀、位数不足6位或超长(取最后6位)的颜色值,输出连续的彩色小方块。
2. 生成通用格式图片文件
使用ImageMagick的convert命令生成横向色块条图片:
COLORS="0x004586 0xff420e 0xffd320 0x579d1c 0x7e0021 0x83caff 0x314004 0xaecf00 0x4b1f6f 0xff950e 0xc5000b 0x0084d"; COUNT=$(echo "$COLORS" | wc -w); convert -size ${COUNT}00x100 xc:white $(i=0; for c in $COLORS; do hex=$(echo "$c" | sed 's/^0x//' | awk '{print substr($0, length($0)-5, 6)}' | awk '{printf "%06s", $0}' | tr ' ' '0'); echo "-fill #$hex -draw 'rectangle $((i*100)),0 $(((i+1)*100)),100'"; i=$((i+1)); done) color_strip.png
说明:生成的color_strip.png是100像素高的图片,每个颜色对应100像素宽的色块,自动适配颜色数量。
3. 在X窗口中展示
结合ImageMagick和X窗口工具,直接在图形界面显示色块条:
COLORS="0x004586 0xff420e 0xffd320 0x579d1c 0x7e0021 0x83caff 0x314004 0xaecf00 0x4b1f6f 0xff950e 0xc5000b 0x0084d"; COUNT=$(echo "$COLORS" | wc -w); convert -size ${COUNT}00x100 xc:white $(i=0; for c in $COLORS; do hex=$(echo "$c" | sed 's/^0x//' | awk '{print substr($0, length($0)-5, 6)}' | awk '{printf "%06s", $0}' | tr ' ' '0'); echo "-fill #$hex -draw 'rectangle $((i*100)),0 $(((i+1)*100)),100'"; i=$((i+1)); done) png:- | display -
说明:无需保存文件,直接通过管道将生成的图片数据传给display(ImageMagick组件)在X窗口中打开。
注意事项
- 终端展示需支持ANSI 24位颜色(大部分现代终端如GNOME Terminal、Konsole、iTerm2均支持)
- 生成图片和X窗口展示需安装ImageMagick(
sudo apt install imagemagick或sudo dnf install imagemagick) - 所有命令均处理异常格式:自动去除
0x前缀、补全6位长度、超长值取最后6位
内容的提问来源于stack exchange,提问作者einpoklum
相关产品推荐
相关产品推荐

