如何让我的终端显示图形图片?

Den*_*ter 201 command-line image-viewers

这是我复制并粘贴在一起的快速模型。我想这是超级酷和有用的。

这样的东西已经存在了吗?

http://imgur.com/Z3DbS

use*_*825 79

也许caca就是你想要的。对于图像

sudo apt-get install caca-utils
cacaview /PATH/TO/image.jpg
Run Code Online (Sandbox Code Playgroud)

确保您的终端窗口足够大。

例如,以下是此图像的显示方式cacaview

截屏

我有时会用它来娱乐在 mplayer 中以 ASCII 格式观看视频:) 像这样:

mplayer -vo caca /PATH/TO/video.mpg
Run Code Online (Sandbox Code Playgroud)

  • 现在场上有一个新玩家:https://github.com/ichinaski/pxl --- 在快速测试中,图片看起来比在 cacaview 中更好。(我想添加一个新答案,但该网站不允许我(?)) (9认同)
  • 非常有用——来自 caca-utils 的命令应该在终端中显示内联图像是`img2txt` (8认同)
  • `“以 ASCII 码观看视频”但是......为什么?`因为你想要?因为你需要偷看视频而你唯一得到的就是终端?因为如果您不需要某些东西,并不意味着其他人会跟随。 (4认同)
  • 这将打开另一个窗口。OP要求终端。我认为你应该建议使用 img2txt。 (2认同)

joe*_*lom 77

更新 2021-03-02

视觉

Viu是一个图像查看器,可以使用 kitty、iterm 或 libsixel 方法显示图像。它还具有后备模式来显示块状 ascii 图像。


更新 2018-12-31

猫猫

全能的终端模拟器 kitty 有一个icat显示图像命令(在 tmux 中不起作用)。Kitty 还启用了Ranger(一个终端文件管理器)中的图像预览,这是我目前最常用的方法(在 tmux 中有效)。


1. w3m

虽然主要目的w3m是提供控制台内的网页浏览,但它也可用于在终端中查看图像。要安装的相关软件包是w3mw3m-img(至少在 Ubuntu 上)。然后,您需要通过传递-o ext_image_viewer=0或进入内部的选项菜单 ('o')w3m并禁用外部图像查看来禁用外部图像查看器。

现在,键入w3m <image_name>将在终端中显示图像。w3m将使用整个终端窗口,因此在退出之前您无法看到以前的命令w3m(想想less,不是cat)。请注意,如果图像太大以适合终端窗口,它仍将在外部打开(对我来说在 imagemagick 中)。另请注意,即使我阅读了多个w3m内嵌图像不起作用的地方gnome-terminal,它对我来说也很好用。您必须键入q两次才能先关闭图像,然后再关闭,这有点烦人w3m

2. 术语

tycatterminology图像的一部分并显示图像,如cat显示文本文件和imgcat适用于 OS X 上的 iTerm2 的作品。

3. libsixel + mlterm/xterm

安装libsixel-bin和任何兼容的终端(本自述文件的“要求”下提到的示例,例如mltermxterm使用正确的标志编译,您可以使用img2sixel命令查看图像。这两个包都在 Ubuntu 存储库中可用。

4. FIM

然后是FIM,它是fbi. 主页说明它不仅可以使用帧缓冲区显示图像,还可以使用 X 显示图像。但是,它不会为我安装。编辑我通过下载 0.5 主干版本来运行它,运行./configure --disable-exif然后anaconda从我的路径中临时删除(python 发行版),因为它libpng在运行之前引起了冲突,make并且sudo checkinstall(您需要使用 手动写入版本号checkinstall,但它使它更容易删除比make install)。然而,图像仍然显示在一个单独的窗口中,尽管fbi你不需要运行 X,这很酷。

5. jupyter-qtconsole

您还可以发挥创意并使用 jupyter-qtconsole 作为您的系统控制台,将其配置为显示内联图 ( %matplotlib inline),然后使用 matplotlib =)显示图像

6. 费

feh正在使用 X 显示图像,但feh -x在无边框窗口中弹出它们,该窗口可以使用q或快速关闭x。虽然图像没有显示在终端中,但我认为值得一提,因为它是我迄今为止发现的侵入性最小的方式,并且在gnome-terminal获得imgcat/tycat等效之前我正在使用它。


Ste*_*ein 53

我编写了一个小型 C++ 工具,用于将图像转换为 ANSI RGB 控制代码和 Unicode 块图形字符,用于支持这些功能的现代终端:https//github.com/stefanhaustein/TerminalImageViewer

安装:

git clone https://github.com/stefanhaustein/TerminalImageViewer.git
cd TerminalImageViewer/src/main/cpp
make
sudo make install
Run Code Online (Sandbox Code Playgroud)

用法:

tiv <image(s)>
Run Code Online (Sandbox Code Playgroud)

编辑:更改了主存储库的链接/说明;添加用法。

例子:

终端图像查看器

  • 它曾经是 Java,但是这个简单任务需要 JVM 使我很恼火,所以我将它移植到 C++(尽管屏幕截图仍然显示了 java 命令) (6认同)
  • 比cacaview好多了! (4认同)
  • 非常好的结果!谢谢 !当没有可用的 x 服务器时,对 ssh 非常有用! (3认同)
  • 这看起来很不错!但它是 Java 还是 C++? (2认同)

hac*_*rb9 41

我制作了一个非常快速、简单的单行 shell 函数,它完全按照模型中的要求解决了原始问题。请注意,下面的屏幕截图是实际图像,而不是模型。

function lsix() { montage -tile 7x1 -label %f -background black -fill white "$@" gif:- | convert - -colors 16 sixel:-; }
Run Code Online (Sandbox Code Playgroud)

使用 lsix 命令的屏幕截图

先决条件是最少的:xterm 和 ImageMagick ( apt-get install xterm imagemagick)。您的 xterm 必须处于 vt340 模式,您可以~/.Xresources在命令行 ( xterm -ti vt340)中或从命令行进行设置。

限制:所有显示的图像仅使用 16 种颜色。这意味着,单独查看图像时可能会更好看。(见下文)。

显示 16 色限制的屏幕截图

更新

虽然我上面的答案仍然正确,但我已经创建了一个更好的 shell 脚本,它能够将图像的“ls”直接输入到终端中。我添加了各种各样的改进来使图像看起来更好(更多的颜色、适当的 alpha、JPEG 方向、处理大量图像、紧凑的平铺布局……)。它仍然是一个相当小的程序,但我认为人们可能想要定制它,所以我把它放在 github 上:https : //github.com/hackerb9/lsix


Ami*_* KK 32

您不能在终端窗口中执行此操作,但可以在Linux 控制台中使用fbi. 您需要一个帧缓冲区来允许它工作:

sudo apt-get install fbi
Run Code Online (Sandbox Code Playgroud)

去一个Linux控制台(使用Ctrl+ Alt+ F1),并输入fbi <filename>

它应该显示您的图像。

  • 没有为我工作。但是“caca”工具起作用了。使用“DejaVu Sans Mono-16”,pixelsize=16.67 file=/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf ioctl VT_GETSTATE:设备的ioctl不合适(不是linux控制台?) (7认同)
  • “终端”与“tty”是什么意思?他们不是一回事吗?https://askubuntu.com/questions/506510/what-is-the-difference-between-terminal-console-shell-and-command-line (5认同)
  • @Wernight Ctrl + Alt + F1/F2/F3 在 ubuntu 下给你一个 tty(Ctrl + Alt + F8 返回)。 (3认同)

Jav*_*pez 23

另一种选择是术语:

在此处输入图片说明 https://www.youtube.com/watch?feature=player_embedded&v=ibPziLRGvkg

您可以通过添加enlightenment-git存储库在Ubuntu 上安装它:

sudo add-apt-repository ppa:enlightenment-git/ppa
sudo apt-get update && sudo apt-get install terminology
Run Code Online (Sandbox Code Playgroud)

或者在最近的 Ubuntu 版本 >= Vivid (15.04) 中,它可以从官方存储库中获取。

sudo apt-get install terminology
Run Code Online (Sandbox Code Playgroud)

要查看图像,请键入tycat IMAGENAME,要查看图像列表,请键入tyls -m

  • `tycat` 内联显示图像,`tyls -m` 显示目录中的中等大小的缩略图。 (5认同)

小智 18

另一个工具是catimg可以使用安装

sudo apt-get install catimg
Run Code Online (Sandbox Code Playgroud)

它实际上并不查看图像,而是将其转换为彩色字符。

在此处输入图片说明


Meh*_*ian 13

只是为了添加到该集合中(也许也是为了将来的我),还有一个名为chafa的积极开发/维护的软件,其工作原理与catimg类似。除了 GIF 之外,两者都可以显示图像。

茶法:

# install chafa
sudo apt install chafa
# open a file
chafa file.gif
Run Code Online (Sandbox Code Playgroud)

展示茶法

目录:

# install catimg
sudo apt install catimg
# open a file
catimg filename.gif
Run Code Online (Sandbox Code Playgroud)

展示猫


sak*_*jur 12

实际上有一个名为TermKit的项目,如果你想测试它 - 查看http://blog.easytech.com.ar/2011/05/21/playing-with-termkit-with-chrome/但它相当未完成(因为你似乎有一台 Mac,你应该尝试 Mac 版本,因为它是“原版”)

所以是的,这是一个值得探索的想法,但是 - 图形和纯文本模式之间的切换必须很快,因为我并不总是需要查看图像。此外 - 它需要与例如 Vim 完全兼容..


Kno*_*ube 8

这不存在;gnome-terminal只能显示文本,至少据我所知。

但是,您可以从命令行调用图像查看器来查看特定文件夹中的图片。因此,从上面显示您列出当前文件夹中所有 .jpg 图片的模型开始,您可以使用命令行中的 Eye of GNOME(Ubuntu 的默认图像查看器)进行类似操作:

eog *.jpg &
Run Code Online (Sandbox Code Playgroud)

请注意,出现的窗口一次只会显示一张图像,但您可以使用提供的箭头按钮在它们之间循环。

  • 之前的所有答案都证明这篇文章是错误的。 (2认同)

小智 8

我写了一个工具来做到这一点。我将我的在终端中显示图像命名为 ( siit)。它假设您有一个 256 色终端和 UTF8 支持,并且它是用 perl 编写的。

我把它放在我的~/bin. 它假设您有 Image::Magick、Term::Size、Getopt::Long 和 Time:HiRes,它们都应该在您的发行版存储库或 CPAN 中可用。

我的目的是通过 ssh 进入我的房子,并在不通过 X 上启动显示器的情况下快速查看图像。脚本缩放到您所在终端的适当宽度/高度。我使用 UTF8 字符有效地将终端的垂直分辨率加倍,这真的有助于清晰。天啊。

样张在这里

源代码在这里

  • 源代码链接对我不起作用,但我在互联网上找到了一个版本,这里是一个镜像:https://gist.github.com/certik/4336299de10f400ee49943bd9f8a8ba6 (2认同)

afe*_*sin 8

除了Joel 的回答之外,带有扩展名的Ranger终端文件管理器w3mimgdisplay可以显示全彩色图像,还支持“oldschool ASCII art previews”。是启用它的方法。这可能不是您正在寻找的确切内容,而是一种在终端中预览图像的方法。

在此处输入图片说明