Как мне заставить мой терминал отображать графические картинки?

Это быстрый макет, который я скопировал и вставил вместе. Я представляю, что это очень круто и полезно.

Что-то подобное уже существует?

http://imgur.com/Z3DbS

201
задан 6 June 2017 в 08:59

13 ответов

Обновление 2018-12-31

Вокруг потрясающего эмулятора терминала есть команда icat для отображения изображений (не работает в tmux). Китти также позволяет просматривать изображения в ranger (файловый менеджер терминала), который в настоящее время является наиболее часто используемым методом (работает в tmux).


1. w3m

Хотя основная цель w3m заключается в обеспечении внутриконсольного просмотра веб-страниц, он также может быть использован для просмотра изображений в терминале. Соответствующими пакетами для установки являются w3m и w3m-img (по крайней мере, на Ubuntu). Затем необходимо отключить внешний просмотр изображения, передав -o ext_image_viewer=0 или зайдя в меню опций ('o') внутри w3m и отключить внешний просмотр изображения.

Теперь, набрав w3m <имя_образа>, изображение будет отображено в терминале. w3m будет использовать все терминальное окно, поэтому вы не сможете увидеть ваши предыдущие команды до тех пор, пока не выйдете из w3m (подумайте меньше , а не cat). Обратите внимание, что если изображение должно быть большим, чтобы соответствовать терминальному окну, оно все равно будет открыто внешне (в imagemagick для меня). Также обратите внимание, что хотя я прочитал несколько мест, где встроенные изображения w3m не будут работать для gnome-терминала, для меня это работает нормально. Немного раздражает то, что вам нужно набрать q дважды, чтобы закрыть сначала изображение, а затем w3m.

2. Терминология

tycat является частью терминологии и отображает изображения как cat, отображает текстовые файлы и как imgcat работает для iTerm2 в OS X.

3. libsixel + mlterm/xterm

Установите libsixel-bin и любой совместимый терминал (примеры приведены в разделе 'Требования' данного считываемого объекта), Например, mlterm или xterm, скомпилированные с правильными флагами, и вы можете просматривать изображения с помощью команды img2sixel. Оба этих пакета доступны в репозитории Ubuntu.

4. FIM

Затем имеется FIM, который является улучшенной версией fbi. На главной странице написано, что она может отображать изображения не только с помощью фрейм-буфера, но и с помощью X. Однако, она не будет устанавливать для меня. Редактирование Я запустил его, скачав trunk-версию 0.5, запустив . /configure --disable-exif и затем временно удалить anaconda (python distribution) с моего пути, так как это вызвало конфликт с libpng до запуска make и sudo checkinstall (вам нужно записать номер версии вручную с помощью checkinstall), но его легче удалить, чем make install). Тем не менее, изображения по-прежнему отображаются в отдельном окне, хотя, как и в случае с fbi, вам не нужно запускать X, что является своего рода крутым.

5. jupyter-qtconsole

Вы также можете творчески подойти и использовать jupyter-qtconsole в качестве системной консоли, настроить ее на отображение графиков inline (%matplotlib inline), а затем отобразить изображение с помощью matplotlib =)

6. feh

feh использует X для отображения изображений, но feh -x выводит их в окно без полей, которое можно быстро закрыть с помощью q или x. Хотя изображения не отображаются в терминале per say, я подумал, что это стоит упомянуть, так как это наименее навязчивый способ, который я нашел до сих пор, и то, что я использую до тех пор, пока gnome-терминал не получит imgcat/tycat эквивалент.

70
ответ дан 6 June 2017 в 18:59

در واقع چنین پروژه ای با نام TermKit وجود دارد ، اگر می خواهید آن را آزمایش کنید - به http://blog.easytech.com.ar/ مراجعه کنید 2011/05/21 / بازی-با-termkit-with-chrome / اما کاملاً ناتمام است (از آنجا که به نظر می رسد دارای Mac هستید ، باید نسخه Mac را امتحان کنید زیرا "اصلی" است)

بنابراین بله ، این ایده ای است که قابل کاوش است - تغییر حالت حالت گرافیکی و فقط متن باید سریع باشد زیرا من همیشه به تصاویر مشاهده شده احتیاج ندارم. همچنین - باید کاملاً مطابقت داشته باشد به عنوان مثال ویم ..

12
ответ дан 6 June 2017 в 08:59

این وجود ندارد. gnome-terminal فقط تا آنجا که من می دانم قادر به متن نویسی متن است.

با این حال ، شما می توانید با یک مشاهدهگر تصویر از خط فرمان تماس بگیرید تا تصاویر خود را در پوشه خاص بنابراین ، از ماکت خود در بالا که به شما نشان می دهد همه تصاویر .jpg را در پوشه فعلی لیست می کنید ، می توانید از Eye of GNOME (نمایشگر تصویر پیش فرض اوبونتو) از خط فرمان برای موارد مشابه استفاده کنید:

eog *.jpg &

توجه داشته باشید که پنجره ای که ظاهر می شود هر بار فقط یک تصویر نشان دهید ، اگرچه می توانید از دکمه های پیکان ارائه شده برای چرخاندن بین آنها استفاده کنید.

8
ответ дан 6 June 2017 в 08:59

نمی توانید این کار را در یک پنجره ترمینال انجام دهید ، اما می توانید این کار را در یک کنسول Linux با استفاده از fbi انجام دهید. برای فعال کردن این کار به یک بافر بافر نیاز دارید:

sudo apt-get install fbi

به یک کنسول لینوکس بروید (با استفاده از Ctrl + Alt + F1 ] و fbi را وارد کنید

این باید تصویر شما را نشان دهد.

32
ответ дан 6 June 2017 в 08:59

Может быть caca - это то, что вы хотите. Для изображений :

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

Убедитесь, что ваше терминальное окно достаточно большое.

Например, вот как это изображение отображается в cacaview:

Screenshot

Иногда я использовал его для развлечения, чтобы смотреть видео как ASCII в mplayer :). Вот так:

mplayer -vo caca /PATH/TO/video.mpg
76
ответ дан 6 June 2017 в 08:59

Другая альтернатива - терминология:

enter image description here https://www.youtube.com/watch?feature=player_embedded&v=ibPziLRGvkg

Вы можете установить его на Ubuntu, добавив репозиторий radienment-git:

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.

22
ответ дан 6 June 2017 в 08:59

Я написал инструмент для этого. Я назвал свое "Показать изображение в терминале" ( siit ).Предполагается, что у вас есть 256-цветный терминал и поддержка UTF8, и он написан на Perl.

Я бросил его в свой ~ / bin . Предполагается, что у вас есть Image :: Magick, Term :: Size, Getopt :: Long и Time: HiRes, которые должны быть доступны в репозиториях вашего дистрибутива, или CPAN.

Мое намерение состояло в том, чтобы войти в мой дом по ssh и быстро просматривать изображения без запуска дисплея поверх X. Скрипт масштабируется до ширины / высоты, соответствующей ширине / высоте терминала, в котором вы находитесь. Я использовал символы UTF8, чтобы эффективно удвоить вертикальное разрешение вашего терминала , что действительно способствует ясности. YMMV.

Примеры снимков здесь

Исходный код здесь

8
ответ дан 6 June 2017 в 08:59

Вот некоторые решения в node.js (Инструкции по установке здесь). Для установки либо наберите npm install -g <имя_пакета>, где package_name либо из picture-tube, либо из imaging.

3
ответ дан 6 June 2017 в 08:59

Я написал небольшой инструмент на 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

48
ответ дан 6 June 2017 в 18:59

Другой инструмент - catimg , который можно установить с помощью

sudo apt-get install catimg

. Он фактически не просматривает изображение, а превращает его в цветные символы.

enter image description here

14
ответ дан 6 June 2017 в 18:59

В дополнение к Ответ Джоэла , Ranger диспетчер файлов терминала с расширением w3mimgdisplay может отображать изображения в полном цвете, а также поддерживает «предварительные просмотры изображений ASCII старой школы». Вот , как вы можете его включить. Возможно, это не совсем то, что вы искали, но способ предварительного просмотра изображений в терминале.

enter image description here

7
ответ дан 6 June 2017 в 18:59

Я сделал очень быструю и простую однострочную функцию оболочки, которая решает исходный вопрос точно так, как требуется в мокапах.Обратите внимание, что приведенные ниже снимки экрана представляют собой реальные изображения, а не макеты.

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

Screenshot of using the lsix command

Предварительные требования минимальны: xterm и ImageMagick ( apt-get install xterm imagemagick ). Ваш xterm должен быть в режиме vt340, который вы можете установить в ~ / .Xresources или из командной строки ( xterm -ti vt340 ).

Ограничения: только 16 цветов используются поверх всех показанных изображений . Это означает, что изображение может выглядеть лучше при просмотре отдельно. (Смотри ниже).

Screenshot showing 16 color limitation

ОБНОВЛЕНИЕ

Хотя мой предыдущий ответ по-прежнему верен, я создал еще более лучший сценарий оболочки, который может выполнять «ls» изображений непосредственно в терминале. Я добавил всевозможные улучшения, чтобы изображения выглядели лучше (больше цветов, правильный альфа-канал, ориентация JPEG, обработка большого количества изображений, компактный макет плитки и т. Д.). Это все еще довольно маленькая программа, но я подумал, что люди могут захотеть ее настроить, поэтому я разместил ее на github: https://github.com/hackerb9/lsix .

37
ответ дан 6 June 2017 в 18:59

Чтобы добавить в коллекцию (возможно, также для будущего меня), существует также активно развивающееся / поддерживаемое программное обеспечение под названием chafa , которое работает аналогично catimg . Оба могут показывать изображения в дополнение к GIF-файлам

chafa:

showcasing chafa

catimg:

Showcasing catimg

0
ответ дан 5 January 2021 в 23:46

Другие вопросы по тегам:

Похожие вопросы: