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

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

这样的事情已经存在吗?

http://imgur.com/Z3DbS

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

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

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

例如,以下是此图像在cacaview显示cacaview

截图

我有时用它来播放 mplayer中的ASCIIvideo :)这样:

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

w3m

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

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

2.术语

tycatterminology一部分,并显示像cat显示文本文件的图像,以及像OS X上的imgcat作品。

3. libsixel + mlterm / xterm

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

4. FIM

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

5. jupyter-qtconsole

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

6.嗯

feh正在使用X来显示图像,但是feh -x在无边框窗口弹出它们,可以用qx快速关闭。 虽然每个说法都没有在终端上显示图像,但我认为值得一提,因为它是我迄今为止发现的最不具侵入性的方式以及我使用的内容,直到gnome-terminal获得imgcat / tycat等价物。

您不能在终端窗口中执行此操作,但可以使用fbi在Linux控制台中执行此操作。 你需要一个framebuffer来实现这一点:

 sudo apt-get install fbi 

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

它应该显示你的形象。

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

安装:

 git clone https://github.com/stefanhaustein/TerminalImageViewer.git cd TerminalImageViewer/src/main/cpp make sudo make install 

用法:

 tiv  

编辑 :将链接/指令更改为主存储库; 增加使用量。

例子:

TerminalImageViewer

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

 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色限制

UPDATE

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

另一种选择是术语:

在此处输入图像描述 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

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

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

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

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

 eog *.jpg & 

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

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

我把它放在我的~/bin 。 它假设你有你的发行版存储库或CPAN中的Image :: Magick,Term :: Size,Getopt :: Long和Time:HiRes。

我的目的是ssh进入我的房子,并快速查看图像,而无需在X上启动显示。脚本缩放到适合您所在终端的宽度/高度。我使用UTF8字符有效地使终端的垂直分辨率加倍,这真的是有助于清晰。 因人而异。

这里有拍摄样品

源代码在这里

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

  1. 显像管

  2. 成像

要安装它们,请输入npm install -g ,其中package_namepicture-tubeimaging

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

在此处输入图像描述

另一个工具是catimg ,虽然Ubuntu没有现成的包。 它实际上不会查看图像,而是将其转换为彩色字符。

在此处输入图像描述