问题描述
这是我复制并粘贴在一起的快速模型。我想这是超级酷和有用的。
像这样的东西已经存在了吗?
最佳解决思路
也许caca是你想要的。对于图像:
sudo apt-get install caca-utils
cacaview /PATH/TO/image.jpg
确保您的终端窗口足够大。
例如,以下是cacaview
中this image的显示方式:
我有时使用它来获取乐趣,在mplayer中以ASCII格式观看视频:)像这样:
mplayer -vo caca /PATH/TO/video.mpg
次佳解决思路
您不能在终端窗口中这样做,但您可以使用fbi
在Linux console中执行此操作。你需要一个framebuffer来允许它工作:
sudo apt-get install fbi
转到Linux控制台(使用Control-Alt-F1)并输入fbi <filename>
它应该显示你的图像。
第三种解决思路
1. w3m
虽然w3m
的主要目的是提供in-console网页浏览,但它也可以用于在终端中查看图像。要安装的相关软件包是w3m
和w3m-img
(至少在Ubuntu上)。然后,您需要通过传递-o ext_image_viewer=0
或进入w3m
中的选项菜单(‘o’)来禁用外部图像查看器,并禁用外部图像查看。
现在,输入w3m <image_name>
将在终端中显示图像。 w3m
将使用整个终端窗口,因此在退出w3m
(认为less
,而不是cat
)之前,您看不到以前的命令。请注意,如果图像太大以适合终端窗口,它仍然会在外部打开(在我的imagemagick中)。还要注意的是,即使我读了多个w3m
内联图像不适用于gnome-terminal
的地方,它对我来说工作正常。有点烦人,你必须键入q
两次,先关闭图像,然后关闭w3m
。
2.术语
tycat
是terminology
的一部分,并显示像cat
显示文本文件的图像,并且像imgcat
适用于OS X上的iTerm2。
3. libsixel + mlterm /xterm
安装libsixel-bin
和任何兼容的终端(在‘Requirements’ of this readme下提到的例子,例如mlterm
或xterm
,用右边的标志编译,你可以用img2sixel
命令查看图像,这两个软件包都可以在Ubuntu软件仓库中找到。
4. FIM
然后是FIM,它是fbi
的改进版本。主页指出,它不仅可以用framebuffer显示图像,还可以用X显示图像。但是,它不会为我安装。编辑我通过下载0.5中继版运行,运行./configure --disable-exif
,然后从我的路径中临时删除anaconda
(python发行版),因为它在运行make
和sudo 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
将它们弹出到无边框窗口中,该窗口可以用q
或x
快速关闭。虽然图片没有显示在终端上,但我认为这是值得一提的,因为它是迄今为止我发现的最不干扰的方式,以及我使用的方式,直到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)>
编辑:将链接/说明更改为主存储库;添加使用量。
例子:
第五种思路
另一种选择是术语:
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-version,因为它是”the original”)
所以是的,这是一个值得探索的想法,但是 – 图形和text-only模式之间的切换必须快速,因为我并不总是需要查看的图像。另外 – 它需要与例如Vim的..
第七种思路
我做了一个非常快速,简单的一行shell函数,它可以完全按照模型中的要求解决原始问题。请注意下面的截图是实际图片,而不是模型。
function lsix() { montage -tile 7x1 -label %f -background black -fill white "$@" gif:- | convert - -colors 16 sixel:-; }
先决条件是最小的:xterm和ImageMagick(apt-get install xterm imagemagick
)。您的xterm必须处于vt340模式,您可以在~/.Xresources
中或通过命令行(xterm -ti vt340
)设置该模式。
局限性:所有图像只显示16种颜色。这意味着,一张图片看起来可能会更好看。 (见下文)。
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字符来有效加倍终端的垂直分辨率,有助于澄清。因人而异。
第十种思路
以下是node.js
中的一些解决方案(安装说明我如何安装最新版本的node.js?)。
要安装,请键入npm install -g <package_name>
,其中package_name
是picture-tube
或imaging
中的任意一个。
参考资料