如何使终端显示图形图片?


143

这是我复制并粘贴在一起的快速模型。我认为这非常酷并且有用。

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

http://imgur.com/Z3DbS


4
我总是只用feh!我知道它不在终端中,但是确实可以。
dylnmc

终端不适用于图形,它只能显示unicode字符,并进行一些着色。您可以得到的最好的是ASCII艺术。
2016年

我喜欢将终端用于带有itermplot的图形,不幸的是,仅适用于macOS。
miku

这个问题是由自制啤酒中的啤酒形象引起的吗?那是一个表情符号。
Ekevoo

如果您在尝试在Mac上查看它们的Ubuntu服务器上,则可以正常工作:unix.stackexchange.com/a/457076/7000
Sridhar Sarnobat

Answers:


47

更新2018-12-31

到处都是很棒的终端仿真器小猫,有一个icat显示图像命令(在tmux中不起作用)。Kitty还可以在Ranger(终端文件管理器)中启用图像预览,这是我目前最常用的方法(在tmux中有效)。


1. w3m

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

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

2.术语

tycat是OS X的一部分,terminology并显示图像,例如cat显示文本文件和imgcatOS X上的iTerm2。

3. libsixel + mlterm / xterm

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

4. FIM

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

5. jupyter-qtconsole

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

6. feh

feh正在使用X显示图像,但将其feh -x弹出在无边界窗口中,可以使用q或快速关闭窗口x。尽管每个终端都没有显示图像,但我认为值得一提,因为这是我到目前为止发现的最少侵入方式,直到gnome-terminal获得imgcat/ tycat等效为止我一直在使用。


w3m正在使用caca-utils,因此最好直接使用它(cacaview e.jpg)
user1133275

64

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

sudo apt-get install caca-utils
cacaview /PATH/TO/image.jpg

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

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

屏幕截图

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

mplayer -vo caca /PATH/TO/video.mpg

5
很有帮助-来自caca-utils的命令应在终端中内嵌显示图像,这是img2txt
Wilf 2014年

6
现在该领域有一个新玩家:github.com/ichinaski/pxl ---在快速测试中,图片看起来比cacaview更好。(我想添加一个新答案,但该网站不允许我(?))
user569825

以ASCII格式观看视频 ”但是...为什么?
德里克·朕会功夫,

4
"watch videos as ASCII" But... why? 因为你想吗?因为您需要浏览视频,而唯一得到的是终端?因为如果您不需要某些东西,并不意味着其他人就会跟随。
Marcin Orlowski

1
mpv有一个tct输出,(与一起使用时--quiet)可以在终端中显示质量与相当的媒体pxl
dsstorefile1

36

我编写了一个小型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

用法:

tiv <image(s)>

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

例子:

TerminalImageViewer


1
这看起来非常好!但是它是Java还是C ++?
Andrea Lazzarotto'7

2
它曾经是Java,但是对这个简单任务的JVM需求使我感到恼火,因此我将其移植到了C ++(尽管屏幕截图仍然显示了Java命令)
Stefan Haustein,2017年

3
比cacaview更好!
Piotr Dabkowski

1
这是一个了不起的工具。绝对慢,但比可卡好得多。使用“ 256位模式”时是否会有质量损失?(因为我必须这样做,正常模式才会混乱)
Blauhirn

2
很好的成绩!谢谢 !当没有x服务器可用时,对于ssh很有用!
Arnaud De Broissia

32

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

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

使用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上


30

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

sudo apt-get install fbi

转到Linux控制台(使用Ctrl+ Alt+ F1)并输入fbi <filename>

它应该显示您的图像。


5
“终端”与“ tty”是什么意思?他们不是同一回事吗?askubuntu.com/questions/506510/…– 2015
星期三

6
没为我工作。但是“ caca”工具起作用了。使用“ DejaVu Sans Mono-16”,pixelize = 16.67 file = / usr / share / fonts / truetype / dejavu / DejaVuSansMono.ttf ioctl VT_GETSTATE:设备使用的ioctl不正确(不是Linux控制台?)
Felipe

3
@Wernight Ctrl + Alt + F1 / F2 / F3在ubuntu下为您提供一个tty(Ctrl + Alt + F8返回)。
joelostblom

1
还有FIM,它是的改进版本fbi。主页指出,它不仅可以使用帧缓冲区显示图像,还可以使用X显示图像。但是,它不会为我安装。
joelostblom

1
好消息iTerm2 v3可以内联显示图像iterm2.com/images.html
AB

20

另一种选择是术语:

在此处输入图片说明 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

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

sudo apt-get install terminology

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


5
tycat在线显示图像并tyls -m在目录中显示中等大小的缩略图。
joelostblom

sudo add-apt-repository ppa:hannes-janetzek / enlightenment-svn 不起作用
Gucho Ca

我已经更新了答案,指出以更近的启示PPA
哈维尔·洛佩斯

1
@chilicuil terminology在官方Ubuntu软件仓库,没有PPA需要。

@cat最初的答案是在生动的发布之前编写的,当时还没有可用的术语,启蒙ppa仍然具有精确/可信赖的软件包以及更多最新的术语版本。但是,也许编辑答案以指出最新的ubuntu版本中可用的冻结术语版本会有所帮助。
哈维尔·洛佩兹

12

实际上有一个名为TermKit的项目,如果您想对其进行测试-请访问http://blog.easytech.com.ar/2011/05/21/playing-with-termkit-with-chrome/,但这确实很不错。未完成(由于您似乎拥有Mac,因此应尝试使用Mac版本,因为它是“原始版本”)

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


我以前在Slashdot上阅读过有关该项目的信息。听起来很有趣!太糟糕了,您需要使用Google Chrome浏览器才能使用它...好吧,好吧,如果您从一开始就使用Chrome浏览器就还不错,但这似乎是不必要的依赖。
Christopher Kyle Horton 2012年

@ WarriorIng64是的,如果您对Qt的WebKit有所了解,我可以使用它-但幸运的是,我们在存储库chromium-browser中提供了该工具,因此安装Chromelike相当容易-我并没有在计算机上真正尝试过TermKit(带有Chromium)已安装,但使用Fx作为主要组件),因为我非常依赖Vim,并且不能真正使用不会给我我心爱的文本编辑器的
终端机

8

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

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

eog *.jpg &

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


1
如果从终端运行,eog *.jpg & disown则效果更好,否则在终端关闭时,EOG可能会退出。注意:我希望EOG仍然是Ubuntu的默认图像查看器-Shotwell很好,但是尝试为我的30GB以上的图片编制索引。...而且还是慢​​而烦人
Wilf 2014年

以前的所有答案都证明该帖子有误。
Arnaud De Broissia

7

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

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

我的意图是缩进我的房子,并快速查看图像而无需在X上启动显示器。脚本将缩放到适合您所在终端的宽度/高度。我使用UTF8字符有效地将终端的垂直分辨率提高了一倍,帮助澄清。YMMV。

样品样本在这里

源代码在这里


1
它是“ siit”,不是“ shit”(严重.....)
Star OS

它最初被称为termpeg,但是很难记住并且不能很好地完成制表符。此外,“这段代码是一个小难题”甚至没有道理。
汤姆(Tom)

2
源代码的链接不为我工作,但我发现在互联网上一个版本,这里是一面镜子:gist.github.com/certik/4336299de10f400ee49943bd9f8a8ba6
昂德里杰·塞蒂克

您有机会提供捆绑版本吗?在必须安装库时,我总是放弃。
Sridhar Sarnobat

6

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

在此处输入图片说明


4

另一个工具是catimg,尽管没有适用于Ubuntu的现成软件包。它实际上并不查看图像,而是将其转换为彩色字符。

在此处输入图片说明


3

这是node.js此处的安装说明)中的一些解决方案。

  1. 显像管

  2. 影像学

要安装任一,类型npm install -g <package_name>,其中package_name是任一picture-tubeimaging

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.