Як зробити свій графічний малюнок свого терміналу?


146

Це швидкий макет, який я копіюю і склеюю разом. Я думаю, що це дуже круто і корисно.

Чи існує вже щось подібне?

http://imgur.com/Z3DbS


5
Я завжди просто користуюся feh! Я знаю, що це не в терміналі, але це робить свою роботу.
dylnmc

Термінал не для графіки, він може відображати лише символи unicode та виконувати деякі забарвлення. Найкраще, що можна отримати, це мистецтво ASCII.
Бен

Я люблю використовувати термінал для графіки з itermplot , який, на жаль, є лише macOS.
miku

Чи це питання мотивоване маленьким зображенням пива на домашньому? Це емоджи.
Екевоо

Якщо ви перебуваєте на сервері Ubuntu, який намагається переглянути їх на Mac, це прекрасно працює: unix.stackexchange.com/a/457076/7000
Шрідар Шарнобат

Відповіді:


48

Оновлення 2018-12-31

У всіх навколо приголомшливий кінцевий емулятор кішечок має icatкоманду для відображення зображень (не працює в межах tmux). Kitty також дозволяє переглядати зображення в ranger (менеджер файлів терміналів), що є методом, який я зараз використовую найчастіше (працює в межах tmux).


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-binі будь-який сумісний термінал (приклади, згадані у розділі "Вимоги" цього readme , наприклад, mltermабо xtermскладені з правими прапорами, і ви можете переглядати зображення за допомогою img2sixelкоманди. Обидва ці пакети доступні у репортах Ubuntu.

4. FIM

Потім є FIM, який є вдосконаленою версією fbi. На домашній сторінці зазначено, що він може відображати зображення не тільки за допомогою кадра Framebuffer, але і за допомогою X. Однак він не встановить для мене. Редагувати Я запустив його, завантаживши версію магістралі 0.5, запустивши ./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еквівалент.


w3m використовує caca-utils, тому було б краще просто використовувати його безпосередньо (cacaview e.jpg)
user1133275

65

Можливо, кака - це те, що ти хочеш. Для зображень :

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

Переконайтеся, що вікно вашого терміналу досить велике.

Наприклад, ось як це зображення відображається в cacaview:

Знімок екрана

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

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

6
Дуже корисно - команда від caca-utils, яка має відображати зображення, вбудовані в термінал,img2txt
Wilf

7
Зараз на полі з'явився новий програвач: github.com/ichinaski/pxl --- У швидкому тесті картинки виглядають краще, ніж у програмі cacaview. (Я хотів додати нову відповідь, але сайт не дозволив мені (?))
user569825

" дивитися відео як ASCII " Але ... чому?
Дерек 朕 會 功夫

4
"watch videos as ASCII" But... why? бо ти хочеш? тому що вам потрібно зазирнути на відео, і єдине, що у вас є, це термінал? Тому що якщо вам щось не потрібно, це НЕ означає, що інші йдуть.
Марцін Орловський

1
mpvмає вихід tct, який (при використанні з --quiet) відображає медіа в терміналі з порівнянною якістю pxl.
dsstorefile1

38

Я написав невеликий інструмент 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


2
Це виглядає дуже приємно! Але це Java чи C ++?
Андреа Лацаротто

3
Раніше це була Java, але потреба в JVM для цього простого завдання мене дратувала, тому я переніс це на C ++ (хоча на екранах все ще відображається команда java)
Стефан Хауштейн

4
Шлях краще, ніж Cacaview!
Пьотр Дабковський

1
Це дивовижний інструмент. Однозначно повільніше, але набагато краще, ніж кака. Чи є якісь втрати якості при використанні "256-бітного режиму"? (оскільки я маю, нормальний режим
заплутався

2
Дуже хороші результати! Дякую! Дуже корисно з ssh, коли немає жодного сервера!
Арно Де Бройсія

33

Я зробив дуже швидку, просту функцію оболонки з однією лінією, яка вирішує оригінальне запитання саме так, як цього вимагали макети. Зверніть увагу, що знімки екрана - це фактичні зображення, а не макети.

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 кольорових обмежень

ОНОВЛЕННЯ

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


30

Це не можна зробити у вікні терміналу, але ви можете це зробити на консолі Linux, використовуючи fbi. Вам потрібен фреймбуфер, щоб це працювало:

sudo apt-get install fbi

Перейдіть до консолі Linux (за допомогою Ctrl+ Alt+ F1) та введітьfbi <filename>

Це повинно показати ваше зображення.


5
Що ви маєте на увазі під терміналом «термінал» проти «тти»? Хіба вони не те саме? askubuntu.com/questions/506510/…
Wernight

6
Не працювало для мене. Але інструмент «кака» спрацював. використовуючи "DejaVu Sans Mono-16", піксельний розмір = 16,67 файл = / usr / share / шрифти / truetype / dejavu / DejaVuSansMono.ttf ioctl VT_GETSTATE: Невідповідний ioctl для пристрою (не консоль Linux?)
Felipe

3
@Wernight Ctrl + Alt + F1 / F2 / F3 дає вам tty під ubuntu (Ctrl + Alt + F8, щоб повернутися).
joelostblom

1
Також є FIM, який є вдосконаленою версією fbi. На домашній сторінці зазначено, що він може відображати зображення не тільки за допомогою кадра Framebuffer, але і за допомогою X. Однак він не встановить для мене.
joelostblom

1
Хороші новини iTerm2 v3 може показати зображення, вбудовані перевірити iterm2.com/images.html
AB

20

Інша альтернатива - термінологія:

введіть тут опис зображення https://www.youtube.com/watch?feature=player_embedded&v=ibPziLRGvkg

Ви можете встановити його на Ubuntu, додавши сховище enlightenment-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.


5
tycatдля відображення вбудованого зображення та tyls -mдля відображення ескізів середнього розміру в каталозі.
joelostblom

sudo add-apt-repository ppa: hannes-janetzek / enlightenment-svn doesnt Work
Gucho Ca

Я оновив відповідь, щоб вказати на пізнішу просвітницьку ппа
Хав'єр Лопес

1
@chilicuil terminologyзнаходиться в офіційних сховищах Ubuntu , PPA не потрібен.
кіт

@cat оригінальна відповідь була написана до виходу яскравих і на той момент термінології не було доступно, ppa просвітництва все ще має точні / надійні пакети та більш сучасні термінологічні версії. Однак, можливо, корисним буде редагування відповіді, ніж заморожені термінологічні версії, доступні в останніх випусках ubuntu.
Хав'єр Лопес

12

Насправді є такий проект під назвою TermKit , якщо ви хочете його протестувати - перегляньте http://blog.easytech.com.ar/2011/05/21/playing-with-termkit-with-chrome/, але це досить незакінчена (оскільки, здається, у вас є Mac, ви повинні спробувати Mac-версію, оскільки це "оригінал")

Так, так, це ідея, яку варто вивчити, однак - перехід між графічним та текстовим режимом повинен бути швидким, оскільки мені не завжди потрібні перегляди зображень. Також - вона повинна бути повністю сумісною, наприклад, з Vim ..


Я читав про цей проект один раз раніше на Slashdot . Звучить інтригуюче! Шкода, що вам потрібен Google Chrome ... ну добре, це не дуже погано, якщо ви користуєтеся Chrome для початку, але це здається зайвою залежністю.
Крістофер Кайл Хортон

@ WarriorIng64 Так, я могла б спрацювати, якщо ви зламаєте трохи з Qt's WebKit - але, на щастя, у нас є chromium-browserрепости, так що досить просто встановити щось схоже на Chrome - я не дуже пробував TermKit на своєму комп’ютері (без хрому) встановлено, але використовую Fx як основний), оскільки я дуже залежний від Vim, і не можу реально використовувати термінал, який не дасть мені мого улюбленого текстового редактора;)
sakjur

8

Цього не існує; gnome-terminalздатний відображати текст, принаймні, наскільки я знаю.

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

eog *.jpg &

Зауважте, що у вікні, що з'явиться, буде відображатися лише одне зображення за раз, хоча ви можете використовувати надані кнопки зі стрілками для переходу між ними.


1
якщо працює з терміналу, eog *.jpg & disownкраще, оскільки в іншому випадку EOG, ймовірно, вийде, коли термінал закриється. NB Я хотів би, щоб EOG все ще переглядав зображення Ubuntu за замовчуванням - знімок добре, але намагається індексувати мої 30 ГБ + фотографій .... і все одно повільний і дратівливий
Вільф

Усі попередні відповіді підтверджують, що цей пост є неправильним.
Арно Де Бройсія

7

Я написав інструмент для цього. Я назвав мою Show Image In Terminal ( siit). Він передбачає, що у вас є 256 кольоровий термінал і підтримка UTF8, і це написано в perl.

Я кинув це в своє ~/bin. Він передбачає, що у вас є Image :: Magick, Term :: Size, Getopt :: Long and Time: HiRes, який повинен бути доступним у сховищах вашого дистрибутива чи CPAN.

Моя мета полягала в тому, щоб увійти в будинок і швидко переглядати зображення, не запускаючи дисплей через X. Шкала сценарію відповідної ширини / висоти для терміналу, в якому ви перебуваєте. Я використовував символи UTF8, щоб ефективно подвоїти вертикальну роздільну здатність вашого терміналу, що насправді сприяє ясності. YMMV.

Зразки знімків тут

Вихідний код тут


1
Це "siit", а не "shit" (серйозно ....)
Star OS

Спочатку його називали терміном, але це занадто важко запам’ятати і не вдалося завершити вкладку. Крім того, "цей код є частиною ситу" навіть не має сенсу.
Том

2
Посилання на вихідний код не працює для мене, але я знайшов версію в Інтернеті, ось дзеркало: gist.github.com/certik/4336299de10f400ee49943bd9f8a8ba6
Ondřej Čertík

Якась можливість надати пакетну версію? Я завжди здаюся, коли мені доводиться встановлювати бібліотеки.
Шрідхар Сарнобат

6

На додаток до відповіді Джоела , менеджер файлів терміналів Ranger з w3mimgdisplayрозширенням може показувати зображення в повнокольоровому кольорі, а також підтримує "oldschool ASCII art previews". Ось як це можна ввімкнути. Це може бути не саме те, що ви шукали, але спосіб попереднього перегляду зображень у терміналі.

введіть тут опис зображення


4

Ще один інструмент - catimg , хоча готового пакету для Ubuntu немає. Він насправді не переглядає зображення, але перетворює його на кольорові символи.

введіть тут опис зображення


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.