你想变成什么颜色? #
前几天为 SoraBot 的 emote 模块添加了一个小功能。
也即,使用 0x
或者 #
来代指 hex 纯色块。
写了个简单的脚本将一张像素图片转换成 SoraBot 用的聊天输入。
但我对这个脚本不甚满意,毕竟之前也有玩过 lolcat 这种终端玩具,就想在终端里也预览一下染色结果。
后来成品是这样的 >
获取图片像素和像素的 rgb 就比较简单了,工具要多少有多少,羽希用一贯喜欢的 imagemagick
magick $1 -format "%[hex:u.p{$x,$y}]\n" info:
终端的颜色输出参考了这个说明 >
\033[38;2;146;255;12mHello!\033[0m
^ ^ ^ ^ ^ ^ ^ ^ ^
| | | R G B | | |
| | | | | | \ Reset the colour to default
| | | | | |
| | | | | \ Escape character
| | | | |
| | | \ R;G;B \ Text to print
| | |
| | \ Indicate the following sequence is RGB
| |
| \ Code to instruct the setting of an 8 or 24-bit foreground (text) colour
|
\ Escape character
冲浪了半天,一堆介绍终端字体颜色的都是基于 ASCII 预置控制用字符和颜色,几乎没有关于 rgb 渲染的,还是这个介绍比较清晰。
其中,使用38;2
为字体样式,如果是48;2
则为背景样式。
用两个█
字符来充当一个方块像素。