当前位置: 首页>>技术问答>>正文


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

, ,

问题描述

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

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

command-line,images,ubuntu

最佳解决思路

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

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

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

例如,以下是cacaviewthis image的显示方式:

command-line,images,ubuntu

我有时使用它来获取乐趣,在mplayer中以ASCII格式观看视频:)像这样:

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

次佳解决思路

您不能在终端窗口中这样做,但您可以使用fbiLinux console中执行此操作。你需要一个framebuffer来允许它工作:

sudo apt-get install fbi

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

它应该显示你的图像。

第三种解决思路

1. w3m

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

现在,输入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和任何兼容的终端(在‘Requirements’ of this readme下提到的例子,例如mltermxterm,用右边的标志编译,你可以用img2sixel命令查看图像,这两个软件包都可以在Ubuntu软件仓库中找到。

4. FIM

然后是FIM,它是fbi的改进版本。主页指出,它不仅可以用framebuffer显示图像,还可以用X显示图像。但是,它不会为我安装。编辑我通过下载0.5中继版运行,运行./configure --disable-exif,然后从我的路径中临时删除anaconda(python发行版),因为它在运行makesudo checkinstall之前与libpng发生冲突(您需要用checkinstall手动编写版本号,但它比make install更容易移除)。然而,图像仍然显示在一个单独的窗口中,虽然与fbi一样,您不需要运行X,这很酷。

5. jupyter-qtconsole

您也可以创造性地使用jupyter-qtconsole作为您的系统控制台,将其配置为显示内联图(%matplotlib inline),然后显示display the image using matplotlib =)

6. feh

feh正在使用X来显示图像,但feh -x将它们弹出到无边框窗口中,该窗口可以用qx快速关闭。虽然图片没有显示在终端上,但我认为这是值得一提的,因为它是迄今为止我发现的最不干扰的方式,以及我使用的方式,直到gnome-terminal获得imgcat /tycat等效为止。

第四种思路

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

编辑:将链接/说明更改为主存储库;添加使用量。

例子:

command-line,images,ubuntu

第五种思路

另一种选择是术语:

https://www.youtube.com/watch?feature=player_embedded&v=ibPziLRGvkg

command-line,images,ubuntu

您可以通过添加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-version,因为它是”the original”)

所以是的,这是一个值得探索的想法,但是 – 图形和text-only模式之间的切换必须快速,因为我并不总是需要查看的图像。另外 – 它需要与例如Vim的..

第七种思路

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

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

command-line,images,ubuntu

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

局限性:所有图像只显示16种颜色。这意味着,一张图片看起来可能会更好看。 (见下文)。

command-line,images,ubuntu

UPDATE

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

第八种思路

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

但是,您可以通过命令行调用图像查看器来查看特定文件夹中的图片。因此,从上面的模型中可以看到当前文件夹中列出了所有的.jpg图片,您可以从命令行使用Eye of GNOME(Ubuntu的默认图像查看器)获取类似的内容:

eog *.jpg &

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

第九种思路

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

我在我的~/bin中放弃了它。它假定你有Image :: Magick,Term :: Size,Getopt :: Long和Time:HiRes,它们应该都可以在你的发行版本库或CPAN中使用。

我的意图是打开我的房子,并快速查看图像,而不用在X上启动显示。脚本会根据您所在的终端缩放到适当的宽度/高度。我使用UTF8字符来有效加倍终端的垂直分辨率,有助于澄清。因人而异。

Sample shots here

Source code here

第十种思路

以下是node.js中的一些解决方案(安装说明我如何安装最新版本的node.js?)。

  1. picture-tube

    command-line,images,ubuntu

  2. imaging

    command-line,images,ubuntu

要安装,请键入npm install -g <package_name>,其中package_namepicture-tubeimaging中的任意一个。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/532.html,未经允许,请勿转载。