写在前面

这篇文章《趣玩 Linux:用 aview 从图片生成 ASCII 字符画》中介绍了一个强大而有趣的工具,可以用来显示字符画。尽管 aview 具有调整亮度、对比度等功能,但它仅能显示出黑白的。有小伙伴留言说,显示人像的效果很糟糕。那么这次介绍的 cacaview 的效果就比较惊艳了,特别是减小字号增加分辨率以后,即使是人像,显示效果也很棒。

 

本文地址:https://www.jeddd.com/article/linux-cacaview.html

安装 caca-utils

Ubuntu 等具有 apt 包管理的 Linux 下执行以下命令(必要时请先自行用“sudo apt update”更新软件源):

$ sudo apt install caca-utils

至此安装完成。根据 cacaview 文档的描述,该工具直接支持 PNG、JPG、GIF、BMP 等主流格式,无需其它支持。

 

使用 cacaview

用下面这张图片(演员 Tuppence Middleton,图片来自互联网)做测试,文件名为“tuppence.jpg”。

进入该目录,执行命令:

$ cacaview tuppence.jpg

这个效果看起来一般般嘛,毕竟分辨率太低,如下图。

 

如果先将字体调小,再执行上述命令,效果就不错了,如下图。当然,随着分辨率的提高,渲染速度也会有一定程度的下降。

cacaview 的其它操作

  • + -:放大或缩小;
  • :方向键移动图片(同样支持h j k l);
  • q:退出;
  • d:切换 dither 模式。详见下文。
    cacaview 中使用了一种叫做 Dither(高频振动)的技术,简单地说,就是在显示设备上使用较少的颜色种类去模拟出更多颜色的技术。cacaview 在显示彩色图片的时候就用到了这种技术。

在显示图片时按下d键即可在多种 dither 模式中循环切换。

比如下面这只卡通赤柴,它身上的颜色无法被终端准确显示出来,而使用该技术,可以模拟类似的效果。以下二图分别为原图和录制的 cacaview 显示效果:

本文地址:https://www.jeddd.com/article/linux-cacaview.html