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

115

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

Уже есть что-то подобное?

    
задан Dennkster 22.01.2012 в 09:41
источник

12 ответов

53

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

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

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

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

Я иногда использовал его для удовольствия смотреть видео как ASCII в mplayer :) Например:

mplayer -vo caca /PATH/TO/video.mpg
    
ответ дан user569825 07.09.2012 в 11:35
32

1. w3m

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

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

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

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

3. libsixel + mlterm / xterm

Установите libsixel-bin и любой совместимый терминал (примеры, упомянутые в «Требования» этого readme , например mlterm или xterm , скомпилированные с правильными флагами, и вы можете просматривать изображения с помощью команды 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 в качестве вашей системной консоли, настроить его для отображения графиков inline ( %matplotlib inline ), а затем отобразить изображение с помощью matplotlib =)

6. Фэ

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

    
ответ дан joelostblom 14.11.2015 в 22:28
31

Вы не можете сделать это в окне терминала, но вы можете сделать это в консоли Linux , используя fbi . Для этого вам нужен фреймбуфер:

sudo apt-get install fbi

Перейдите в консоль Linux (используя Ctrl + Alt + F1 ) и введите fbi <filename>

Он должен показать ваше изображение.

    
ответ дан Amith KK 22.01.2012 в 10:12
25

Я написал небольшой инструмент C ++ для преобразования изображений в управляющие коды ANSI RGB и графические символы блока Unicode для современных терминалов, поддерживающих эти функции: Ссылка

Установка:

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

Использование:

tiv <image(s)>

Изменить : Изменены ссылки / инструкции в основной репозиторий; добавленное использование.

Примеры:

    
ответ дан Stefan Haustein 08.04.2016 в 23:06
20

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

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

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

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

UPDATE

Втовремякакмойвышеприведенныйответпо-прежнемуверен,ясоздалещелучшийсценарийоболочки,которыйспособенделать«ls»изображенийнепосредственновтерминале.Естьвсевозможныеулучшения,которыеядобавил,чтобыизображениявыгляделилучше(большецветов,правильнаяальфа,ориентацияJPEG,обработкабольшогоколичестваизображений,компактнаякомпоновкаплитки,...).Этовсеещедовольнонебольшаяпрограмма,ноярешил,чтолюдимогутеенастроить,поэтомуяпоставилеенаgithub: Ссылка .

    
ответ дан hackerb9 31.05.2017 в 11:24
18

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

Ссылка

Вы можете установить его на Ubuntu, добавив репозиторий просвещения-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 .

    
ответ дан Javier López 27.02.2014 в 02:09
12

На самом деле такой проект называется TermKit , если вы хотите его протестировать - проверьте Ссылка , но это совершенно незаконченный (поскольку у вас, похоже, есть Mac, вы должны попробуйте версию Mac, так как это «оригинал»)

Итак, да, это идея, которую стоит изучить, однако переход между графическим и текстовым режимом должен быть быстрым, так как мне не всегда нужны просмотренные изображения. Кроме того, он должен быть полностью совместим с, например, Вим ..

    
ответ дан sakjur 22.01.2012 в 10:39
8

Это не существует; gnome-terminal способна только документировать текст, по крайней мере, насколько я знаю.

Однако вы можете вызвать средство просмотра изображений из командной строки, чтобы просмотреть ваши фотографии в определенной папке. Итак, выйдя из вашего макета, показывая вам список всех изображений .jpg в текущей папке, вы можете использовать Eye of GNOME (просмотрщик изображений по умолчанию Ubuntu) из командной строки для чего-то подобного:

eog *.jpg &

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

    
ответ дан Christopher Kyle Horton 22.01.2012 в 10:12
6

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

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

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

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

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

    
ответ дан Tom 04.05.2013 в 15:04
3

Ниже приведены некоторые решения в node.js (инструкции по установке здесь ).

  1. картинная камера

  2. изображение

Чтобы установить либо, введите npm install -g <package_name> , где package_name является либо picture-tube , либо imaging .

    
ответ дан Nemo 02.02.2014 в 13:54
3

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

    
ответ дан Ahmet Seha Çelenk 13.05.2017 в 07:32
2

Другим инструментом является catimg , хотя для Ubuntu нет готового пакета. Он фактически не просматривает изображение, а превращает его в цветные символы.

    
ответ дан some user 27.09.2016 в 14:32