Sixel协议

当SSH连接到远程机器时,通常无法将图像结果可视化,或者需要将数据移动到带有图形用户界面的本地设备上才能查看。有一种场景是我们尝试在字符终端中显示某种图形,典型的例子为某些服务器端软件的扫码登录/鉴权,甚至进行媒体图片文件的预览等。

Sixel协议就是解决这个问题的。

Sixel是六像素(Six Pixels)的简称,意思是Sixel协议以一列竖排的6个像素为单位进行控制,每个像素可单独设置颜色/开启与关闭,当六个像素全为开启状态时,从视觉上看来即为在终端模拟器显示一条短竖线.若干像素点相互拼贴即可组成复杂图案。

Sixel的核心在于向终端输出特殊的控制符和文本指令来指定像素点的渲染

由于Sixel实际上是应用程序和特定终端模拟器的渲染模块交互的协议,因此支持情况因终端而异.
你可以在这个网站中(https://www.arewesixelyet.com/)查看具体的终端支持情况.

Windows上似乎没有一个很好的选择,Windows Terminal上的支持看上去很玄学;
macOS上iTerm2等第三方终端支持,Terminal.app本身不支持.
Linux下GNOME的官方Terminal不支持,KConsole支持,诸如Alacritty等第三方终端也支持。
当然,格外要提到 VSCode的Terminal也支持Sixel。
 
 
Back to Top