如何在终端显示图像缩略图 | Linux 中国

找不到分类 evilven 3周前 (09-24) 25次浏览 未收录 0个评论 扫描二维码
如何在终端显示图像缩略图 | Linux 中国

lsix 是一个简单的命令行实用程序,旨在使用 Sixel 图形格式在终端中显示缩略图。

— Sk


不久前,我们讨论了 Fim[1],这是一个轻量级的命令行图像查看器应用程序,用于从命令行显示各种类型的图像,如 bmp、gif、jpeg 和 png 等。今天,我偶然发现了一个名为 lsix 的类似工具。它类似于类 Unix 系统中的 ls 命令,但仅适用于图像。lsix 是一个简单的命令行实用程序,旨在使用 Sixel 图形格式在终端中显示缩略图。对于那些想知道的人来说,Sixel 是六像素six pixels的缩写,是一种位图图形格式。它使用 ImageMagick,因此几乎所有 imagemagick 支持的文件格式都可以正常工作。

功能

关于 lsix 的功能,我们可以列出如下:

◈ 自动检测你的终端是否支持 Sixel 图形格式。如果你的终端不支持 Sixel,它会通知你启用它。
◈ 自动检测终端背景颜色。它使用终端转义序列来试图找出终端应用程序的前景色和背景色,并清楚地显示缩略图。
◈ 如果目录中有更多图像(通常大于 21 个),lsix 将一次显示这些图像,因此你无需等待创建整个蒙太奇图像(LCTT 译注:拼贴图)。
◈ 可以通过 SSH 工作,因此你可以轻松操作存储在远程 Web 服务器上的图像。
◈ 它支持非位图图形,例如 .svg、.eps、.pdf、.xcf 等。
◈ 用 Bash 编写,适用于几乎所有 Linux 发行版。

安装 lsix

由于 lsix 使用 ImageMagick,请确保已安装它。它在大多数 Linux 发行版的默认软件库中都可用。 例如,在 Arch Linux 及其变体如 Antergos、Manjaro Linux 上,可以使用以下命令安装ImageMagick:

<ol class="linenums list-paddingleft-2" style="margin-left: 2em;margin-right: 2em;"><li><section style="overflow-wrap: break-word;width: 1200px;max-width: 1200px !important;"><code style="overflow-wrap: break-word;background: none;color: rgb(33, 150, 243);line-height: 1.2em;padding-left: 10px !important;border-radius: 0px !important;margin-top: 1em !important;margin-bottom: 1em !important;border-width: initial !important;border-style: none !important;border-color: initial !important;"><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">$ </span><span class="kwd" style="overflow-wrap: break-word;color: rgb(226, 137, 100);">sudo</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);"> pacman </span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">-</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">S imagemagick</span></code></section></li></ol>

在 Debian、Ubuntu、Linux Mint:

<ol class="linenums list-paddingleft-2" style="margin-left: 2em;margin-right: 2em;"><li><section style="overflow-wrap: break-word;width: 1200px;max-width: 1200px !important;"><code style="overflow-wrap: break-word;background: none;color: rgb(33, 150, 243);line-height: 1.2em;padding-left: 10px !important;border-radius: 0px !important;margin-top: 1em !important;margin-bottom: 1em !important;border-width: initial !important;border-style: none !important;border-color: initial !important;"><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">$ </span><span class="kwd" style="overflow-wrap: break-word;color: rgb(226, 137, 100);">sudo</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);"> </span><span class="kwd" style="overflow-wrap: break-word;color: rgb(226, 137, 100);">apt-get</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);"> install imagemagick</span></code></section></li></ol>

lsix 并不需要安装,因为它只是一个 Bash 脚本。只需要下载它并移动到你的 $PATH 中。就这么简单。

从该项目的 GitHub 主页下载最新的 lsix 版本。我使用如下命令下载 lsix 归档包:

<ol class="linenums list-paddingleft-2" style="margin-left: 2em;margin-right: 2em;"><li><section style="overflow-wrap: break-word;width: 1200px;max-width: 1200px !important;"><code style="overflow-wrap: break-word;background: none;color: rgb(33, 150, 243);line-height: 1.2em;padding-left: 10px !important;border-radius: 0px !important;margin-top: 1em !important;margin-bottom: 1em !important;border-width: initial !important;border-style: none !important;border-color: initial !important;"><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">$ </span><span class="kwd" style="overflow-wrap: break-word;color: rgb(226, 137, 100);">wget</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);"> https</span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">:</span><span class="com" style="overflow-wrap: break-word;color: rgb(174, 174, 174);font-style: italic;">//github.com/hackerb9/lsix/archive/master.zip</span></code></section></li></ol>

提取下载的 zip 文件:

<ol class="linenums list-paddingleft-2" style="margin-left: 2em;margin-right: 2em;"><li><section style="overflow-wrap: break-word;width: 1200px;max-width: 1200px !important;"><code style="overflow-wrap: break-word;background: none;color: rgb(33, 150, 243);line-height: 1.2em;padding-left: 10px !important;border-radius: 0px !important;margin-top: 1em !important;margin-bottom: 1em !important;border-width: initial !important;border-style: none !important;border-color: initial !important;"><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">$ unzip master</span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">.</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">zip</span></code></section></li></ol>

此命令将所有内容提取到名为 lsix-master 的文件夹中。将 lsix 二进制文件从此目录复制到 $PATH 中,例如 /usr/local/bin/

<ol class="linenums list-paddingleft-2" style="margin-left: 2em;margin-right: 2em;"><li><section style="overflow-wrap: break-word;width: 1200px;max-width: 1200px !important;"><code style="overflow-wrap: break-word;background: none;color: rgb(33, 150, 243);line-height: 1.2em;padding-left: 10px !important;border-radius: 0px !important;margin-top: 1em !important;margin-bottom: 1em !important;border-width: initial !important;border-style: none !important;border-color: initial !important;"><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">$ </span><span class="kwd" style="overflow-wrap: break-word;color: rgb(226, 137, 100);">sudo</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);"> </span><span class="kwd" style="overflow-wrap: break-word;color: rgb(226, 137, 100);">cp</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);"> lsix</span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">-</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">master</span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">/</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">lsix </span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">/</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">usr</span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">/</span><span class="kwd" style="overflow-wrap: break-word;color: rgb(226, 137, 100);">local</span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">/</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">bin</span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">/</span></code></section></li></ol>

最后,使 lsix 二进制文件可执行:

<ol class="linenums list-paddingleft-2" style="margin-left: 2em;margin-right: 2em;"><li><section style="overflow-wrap: break-word;width: 1200px;max-width: 1200px !important;"><code style="overflow-wrap: break-word;background: none;color: rgb(33, 150, 243);line-height: 1.2em;padding-left: 10px !important;border-radius: 0px !important;margin-top: 1em !important;margin-bottom: 1em !important;border-width: initial !important;border-style: none !important;border-color: initial !important;"><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">$ </span><span class="kwd" style="overflow-wrap: break-word;color: rgb(226, 137, 100);">sudo</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);"> </span><span class="kwd" style="overflow-wrap: break-word;color: rgb(226, 137, 100);">chmod</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);"> </span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">+</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">x </span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">/</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">usr</span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">/</span><span class="kwd" style="overflow-wrap: break-word;color: rgb(226, 137, 100);">local</span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">/</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">bin</span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">/</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">lsix</span></code></section></li></ol>

如此,现在是在终端本身显示缩略图的时候了。

在开始使用 lsix 之前,请确保你的终端支持 Sixel 图形格式。

开发人员在 vt340 仿真模式下的 Xterm 上开发了 lsix。 然而,他声称 lsix 应该适用于任何Sixel 兼容终端。

Xterm 支持 Sixel 图形格式,但默认情况下不启用。

你可以从另外一个终端使用命令来启动一个启用了 Sixel 模式的 Xterm:

<ol class="linenums list-paddingleft-2" style="margin-left: 2em;margin-right: 2em;"><li><section style="overflow-wrap: break-word;width: 1200px;max-width: 1200px !important;"><code style="overflow-wrap: break-word;background: none;color: rgb(33, 150, 243);line-height: 1.2em;padding-left: 10px !important;border-radius: 0px !important;margin-top: 1em !important;margin-bottom: 1em !important;border-width: initial !important;border-style: none !important;border-color: initial !important;"><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">$ xterm </span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">-</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">ti vt340</span></code></section></li></ol>

或者,你可以使 vt340 成为 Xterm 的默认终端类型,如下所述。

编辑 .Xresources 文件(如果它不可用,只需创建它):

<ol class="linenums list-paddingleft-2" style="margin-left: 2em;margin-right: 2em;"><li><section style="overflow-wrap: break-word;width: 1200px;max-width: 1200px !important;"><code style="overflow-wrap: break-word;background: none;color: rgb(33, 150, 243);line-height: 1.2em;padding-left: 10px !important;border-radius: 0px !important;margin-top: 1em !important;margin-bottom: 1em !important;border-width: initial !important;border-style: none !important;border-color: initial !important;"><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">$ </span><span class="kwd" style="overflow-wrap: break-word;color: rgb(226, 137, 100);">vi</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);"> </span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">.</span><span class="typ" style="overflow-wrap: break-word;color: rgb(137, 189, 255);">Xresources</span></code></section></li></ol>

添加如下行:

<ol class="linenums list-paddingleft-2" style="margin-left: 2em;margin-right: 2em;"><li><section style="overflow-wrap: break-word;width: 1200px;max-width: 1200px !important;"><code style="overflow-wrap: break-word;background: none;color: rgb(33, 150, 243);line-height: 1.2em;padding-left: 10px !important;border-radius: 0px !important;margin-top: 1em !important;margin-bottom: 1em !important;border-width: initial !important;border-style: none !important;border-color: initial !important;"><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">xterm</span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">*</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">decTerminalID    </span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">:</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">   vt340</span></code></section></li></ol>

按下 ESC 并键入 :wq 以保存并关闭该文件。

最后,运行如下命令来应用改变:

<ol class="linenums list-paddingleft-2" style="margin-left: 2em;margin-right: 2em;"><li><section style="overflow-wrap: break-word;width: 1200px;max-width: 1200px !important;"><code style="overflow-wrap: break-word;background: none;color: rgb(33, 150, 243);line-height: 1.2em;padding-left: 10px !important;border-radius: 0px !important;margin-top: 1em !important;margin-bottom: 1em !important;border-width: initial !important;border-style: none !important;border-color: initial !important;"><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">$ xrdb </span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">-</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">merge </span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">.</span><span class="typ" style="overflow-wrap: break-word;color: rgb(137, 189, 255);">Xresources</span></code></section></li></ol>

现在,每次启动 Xterm 就会默认启用 Sixel 图形支持。

在终端中显示缩略图

启动 Xterm(不要忘记以 vt340 模式启动它)。以下是 Xterm 在我的系统中的样子。

如何在终端显示图像缩略图 | Linux 中国

就像我已经说过的那样,lsix 非常简单实用。它没有任何命令行选项或配置文件。你所要做的就是将文件的路径作为参数传递,如下所示。

<ol class="linenums list-paddingleft-2" style="margin-left: 2em;margin-right: 2em;"><li><section style="overflow-wrap: break-word;width: 1200px;max-width: 1200px !important;"><code style="overflow-wrap: break-word;background: none;color: rgb(33, 150, 243);line-height: 1.2em;padding-left: 10px !important;border-radius: 0px !important;margin-top: 1em !important;margin-bottom: 1em !important;border-width: initial !important;border-style: none !important;border-color: initial !important;"><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">$ lsix ostechnix</span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">/</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">logo</span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">.</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">png</span></code></section></li></ol>

如何在终端显示图像缩略图 | Linux 中国

如果在没有路径的情况下运行它,它将显示在当前工作目录中的缩略图图像。我在名为 ostechnix 的目录中有几个文件。

要显示此目录中的缩略图,只需运行:

<ol class="linenums list-paddingleft-2" style="margin-left: 2em;margin-right: 2em;"><li><section style="overflow-wrap: break-word;width: 1200px;max-width: 1200px !important;"><code style="overflow-wrap: break-word;background: none;color: rgb(33, 150, 243);line-height: 1.2em;padding-left: 10px !important;border-radius: 0px !important;margin-top: 1em !important;margin-bottom: 1em !important;border-width: initial !important;border-style: none !important;border-color: initial !important;"><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">$ lsix</span></code></section></li></ol>

如何在终端显示图像缩略图 | Linux 中国

看到了吗?所有文件的缩略图都显示在终端里。

如果使用 ls 命令,则只能看到文件名,而不是缩略图。

如何在终端显示图像缩略图 | Linux 中国

你还可以使用通配符显示特定类型的指定图像或一组图像。

例如,要显示单个图像,只需提及图像的完整路径,如下所示。

<ol class="linenums list-paddingleft-2" style="margin-left: 2em;margin-right: 2em;"><li><section style="overflow-wrap: break-word;width: 1200px;max-width: 1200px !important;"><code style="overflow-wrap: break-word;background: none;color: rgb(33, 150, 243);line-height: 1.2em;padding-left: 10px !important;border-radius: 0px !important;margin-top: 1em !important;margin-bottom: 1em !important;border-width: initial !important;border-style: none !important;border-color: initial !important;"><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">$ lsix girl</span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">.</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">jpg</span></code></section></li></ol>

如何在终端显示图像缩略图 | Linux 中国

要显示特定类型的所有图像,例如 PNG,请使用如下所示的通配符。

<ol class="linenums list-paddingleft-2" style="margin-left: 2em;margin-right: 2em;"><li><section style="overflow-wrap: break-word;width: 1200px;max-width: 1200px !important;"><code style="overflow-wrap: break-word;background: none;color: rgb(33, 150, 243);line-height: 1.2em;padding-left: 10px !important;border-radius: 0px !important;margin-top: 1em !important;margin-bottom: 1em !important;border-width: initial !important;border-style: none !important;border-color: initial !important;"><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">$ lsix </span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">*.</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">png</span></code></section></li></ol>

如何在终端显示图像缩略图 | Linux 中国

对于 JEPG 类型,命令如下:

<ol class="linenums list-paddingleft-2" style="margin-left: 2em;margin-right: 2em;"><li><section style="overflow-wrap: break-word;width: 1200px;max-width: 1200px !important;"><code style="overflow-wrap: break-word;background: none;color: rgb(33, 150, 243);line-height: 1.2em;padding-left: 10px !important;border-radius: 0px !important;margin-top: 1em !important;margin-bottom: 1em !important;border-width: initial !important;border-style: none !important;border-color: initial !important;"><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">$ lsix </span><span class="pun" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">*</span><span class="pln" style="overflow-wrap: break-word;color: rgb(184, 255, 184);">jpg</span></code></section></li></ol>

缩略图的显示质量非常好。我以为 lsix 会显示模糊的缩略图。但我错了,缩略图清晰可见,就像在图形图像查看器上一样。

而且,这一切都是唾手可得。如你所见,lsix 与 ls 命令非常相似,但它仅用于显示缩略图。如果你在工作中处理很多图像,lsix 可能会非常方便。试一试,请在下面的评论部分告诉我们你对此实用程序的看法。如果你知道任何类似的工具,也请提出建议。我将检查并更新本指南。

更多好东西即将到来。敬请关注!

干杯!


via: https://www.ostechnix.com/how-to-display-thumbnail-images-in-terminal/

作者:SK[3] 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

如何在终端显示图像缩略图 | Linux 中国


Hacking For Fun , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:如何在终端显示图像缩略图 | Linux 中国
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址