Come faccio a far visualizzare le immagini grafiche al mio terminale?


146

Questo è un mockup veloce che copio e incollo insieme. Immagino che questo sia fantastico e utile.

Esiste già qualcosa del genere?

http://imgur.com/Z3DbS


5
Lo uso sempre feh! So che non è nel terminal, ma fa il suo lavoro.
dylnmc,

Il terminale non è per la grafica, può solo visualizzare caratteri Unicode e colorare. Il meglio che puoi ottenere è l'arte ASCII.
Ben

Adoro usare il terminale per la grafica con itermplot , che purtroppo è solo macOS.
Miku,

Questa domanda è motivata dalla piccola immagine della birra in Homebrew? Questa è un'emoji.
Ekevoo,

Se sei su un server Ubuntu che prova a visualizzarli su un Mac, funziona perfettamente: unix.stackexchange.com/a/457076/7000
Sridhar Sarnobat,

Risposte:


48

Aggiornamento 2018-12-31

L'eccezionale gattino emulatore di terminale ha un icatcomando per visualizzare le immagini (non funziona all'interno di tmux). Kitty abilita anche le anteprime delle immagini all'interno di ranger (un gestore di file terminal), che è il metodo che attualmente uso più spesso (funziona con tmux).


1. w3m

Mentre lo scopo principale di w3mè quello di fornire la navigazione web in-console, può anche essere usato per visualizzare le immagini nel terminale. I pacchetti rilevanti da installare sono w3me w3m-img(almeno su Ubuntu). È quindi necessario disabilitare il visualizzatore di immagini esterne appassire passando -o ext_image_viewer=0o andando nel menu delle opzioni ('o') all'interno w3me disabilitare la visualizzazione di immagini esterne.

Ora, digitando w3m <image_name>verrà visualizzata l'immagine nel terminale. w3mutilizzerà l'intera finestra del terminale, quindi non è possibile visualizzare i comandi precedenti fino alla chiusura w3m(si pensi less, non cat). Se l'immagine è troppo grande per adattarsi alla finestra del terminale, verrà comunque aperta esternamente (in imagemagick per me). Inoltre, anche se leggo più luoghi per cui le w3mimmagini in linea non funzionano gnome-terminal, funziona bene per me. È un po 'fastidioso che devi digitare qdue volte per chiudere prima l'immagine e poi w3m.

2. Terminologia

tycatfa parte di terminologye visualizza immagini come catvisualizza file di testo e simili imgcatfunziona per iTerm2 su OS X.

3. libsixel + mlterm / xterm

Installa libsixel-bine tutti i terminali compatibili (esempi citati in "Requisiti" di questo file Leggimi , ad esempio mltermo xtermcompilati con i flag giusti e puoi visualizzare le immagini con il img2sixelcomando. Entrambi questi pacchetti sono disponibili nei repository Ubuntu.

4. FIM

Poi c'è FIM che è una versione migliorata di fbi. La homepage afferma che può visualizzare immagini non solo con il framebuffer, ma anche con X. Tuttavia, non verrà installato per me. Modifica L' ho fatto funzionare scaricando la versione 0.5 di trunk, eseguendo ./configure --disable-exife quindi rimuovendo temporaneamente anaconda(distribuzione Python) dal mio percorso poiché ha causato un conflitto con libpngprima di eseguire makee sudo checkinstall(è necessario scrivere un numero di versione manualmente con checkinstall, ma rende più facile per rimuovere che make install). Tuttavia, le immagini vengono comunque visualizzate in una finestra separata, anche se come con fbite non è necessario eseguire X, il che è abbastanza interessante.

5. jupyter-qtconsole

Potresti anche essere creativo e utilizzare jupyter-qtconsole come console di sistema, configurarlo per mostrare grafici inline ( %matplotlib inline) e quindi visualizzare l'immagine usando matplotlib =)

6. feh

fehsta usando X per visualizzare le immagini, ma le feh -xfa apparire in una finestra senza bordi che può essere chiusa rapidamente con qo x. Anche se le immagini non sono visualizzate nel terminale per dire, ho pensato che valesse la pena menzionarlo poiché è il modo meno invadente che ho trovato finora e quello che sto usando fino a quando non gnome-terminaldiventa un imgcat/ tycatequivalente.


w3m sta usando caca-utils, quindi sarebbe meglio usarlo direttamente (cacaview e.jpg)
user1133275

65

Forse caca è quello che vuoi. Per le immagini :

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

Assicurarsi che la finestra del terminale sia abbastanza grande.

Ad esempio, ecco come viene visualizzata questa immagine in cacaview:

Immagine dello schermo

A volte l'ho usato per divertimento per guardare video in formato ASCII in mplayer :) In questo modo:

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

6
Molto utile - un comando di caca-utils che dovrebbe visualizzare le immagini in linea nel terminale èimg2txt
Wilf

7
Ora c'è un nuovo giocatore sul campo: github.com/ichinaski/pxl --- In un test rapido le immagini sembrano migliori che in cacaview. (Volevo aggiungere una nuova risposta, ma il sito non mi ha permesso (?))
user569825

" guarda i video come ASCII " Ma ... perché?
Derek 功夫 會 功夫 il

4
"watch videos as ASCII" But... why? perché vuoi? perché devi guardare il video e l'unica cosa che hai è il terminale? Perché se non hai bisogno di qualcosa NON significa che altri lo seguano.
Marcin Orlowski,

1
mpvha un output tct che (se usato con --quiet) visualizza i media nel terminale con qualità comparabile a pxl.
dsstorefile1,

38

Ho scritto un piccolo strumento C ++ per convertire immagini in codici di controllo RGB ANSI e caratteri grafici a blocchi Unicode per terminali moderni che supportano queste funzionalità:  https://github.com/stefanhaustein/TerminalImageViewer

Installazione:

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

Uso:

tiv <image(s)>

Modifica : collegamenti / istruzioni modificati al repository principale; uso aggiunto.

Esempi:

TerminalImageViewer


2
Sembra molto bello! Ma è Java o C ++?
Andrea Lazzarotto,

3
Prima era Java, ma la necessità di una JVM per questo semplice compito mi ha infastidito, quindi l'ho portato su C ++ (le schermate mostrano comunque il comando java)
Stefan Haustein,

4
Molto meglio di cacaview!
Piotr Dabkowski il

1
Questo è uno strumento straordinario. Decisamente più lento, ma molto meglio di caca. Si verifica una perdita di qualità quando si utilizza la "modalità 256 bit"? (da quando devo, la modalità normale è incasinata)
phil294

2
Ottimi risultati! Grazie ! Molto utile con ssh quando nessun server x è disponibile!
Arnaud De Broissia,

33

Ho realizzato una funzione shell a una riga molto veloce e semplice che risolve la domanda originale esattamente come richiesto nei modelli. Nota che le schermate seguenti sono immagini reali, non modelli.

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

Schermata di utilizzo del comando lsix

I prerequisiti sono minimi: xterm e ImageMagick ( apt-get install xterm imagemagick). Il tuo xterm deve essere in modalità vt340, che puoi impostare ~/.Xresourcessia dalla riga di comando ( xterm -ti vt340).

Limitazioni: vengono utilizzate solo 16 colori su tutte le immagini mostrate. Ciò significa che un'immagine potrebbe apparire migliore se vista da sola. (Vedi sotto).

Schermata che mostra una limitazione di 16 colori

AGGIORNARE

Mentre la mia risposta sopra è ancora corretta, ho creato uno script shell ancora migliore che è in grado di fare un 'ls' di immagini direttamente in un terminale. Ci sono molti miglioramenti che ho aggiunto per migliorare l'aspetto delle immagini (più colori, alfa corretta, orientamento JPEG, gestione di molte immagini, layout compatto delle piastrelle, ...). È ancora un programma abbastanza piccolo, ma ho pensato che le persone potrebbero voler personalizzarlo, quindi l'ho messo su github: https://github.com/hackerb9/lsix .


30

Non puoi farlo in una finestra terminale, ma puoi farlo in una console Linux usando fbi. È necessario un framebuffer per consentire a questo di funzionare:

sudo apt-get install fbi

Vai a una console Linux (usando Ctrl+ Alt+ F1) e inseriscifbi <filename>

Dovrebbe mostrare la tua immagine.


5
Cosa intendi con "terminale" vs "tty"? Non sono la stessa cosa? askubuntu.com/questions/506510/…
Wernight,

6
Non ha funzionato per me. Ma lo strumento "caca" ha funzionato. usando "DejaVu Sans Mono-16", pixelsize = 16.67 file = / usr / share / fonts / truetype / dejavu / DejaVuSansMono.ttf ioctl VT_GETSTATE: ioctl inappropriato per il dispositivo (non una console linux?)
Felipe

3
@Wernight Ctrl + Alt + F1 / F2 / F3 ti dà un tty sotto Ubuntu (Ctrl + Alt + F8 per tornare indietro).
joelostblom,

1
C'è anche FIM che è una versione migliorata di fbi. La homepage afferma che può visualizzare immagini non solo con il framebuffer, ma anche con X. Tuttavia, non verrà installato per me.
joelostblom,

1
Buone notizie iTerm2 v3 può mostrare immagini in linea controllare iterm2.com/images.html
AB

20

Un'altra alternativa è la terminologia:

inserisci qui la descrizione dell'immagine https://www.youtube.com/watch?feature=player_embedded&v=ibPziLRGvkg

Puoi installarlo su Ubuntu aggiungendo il repository enlightenment-git :

sudo add-apt-repository ppa:enlightenment-git/ppa
sudo apt-get update && sudo apt-get install terminology

O nelle recenti versioni di Ubuntu> = Vivid (15.04) può essere recuperato dai repository ufficiali.

sudo apt-get install terminology

Per visualizzare un'immagine, digitare tycat IMAGENAMEe per visualizzare un elenco di immagini, digitare tyls -m.


5
tycatper visualizzare un'immagine in linea e tyls -mper visualizzare miniature di medie dimensioni in una directory.
joelostblom,

sudo add-apt-repository ppa: hannes-janetzek / enlightenment-svn non funziona
Gucho Ca

Ho aggiornato la risposta per evidenziare il più recente ppa illuminista
Javier López,

1
@chilicuil terminologyè nei repository ufficiali di Ubuntu , non è necessario il PPA.
gatto

@cat la risposta originale è stata scritta prima che vivido fosse rilasciato e a quel tempo la terminologia non era disponibile, l'illuminazione ppa ha ancora pacchetti precisi / affidabili e versioni terminologiche più aggiornate. Tuttavia, potrebbe essere utile modificare la risposta per sottolineare che sono disponibili versioni terminologiche congelate nelle recenti versioni di Ubuntu.
Javier López,

12

In realtà esiste un progetto del genere chiamato TermKit , se vuoi provarlo - dai un'occhiata a http://blog.easytech.com.ar/2011/05/21/playing-with-termkit-with-chrome/ ma è abbastanza incompiuto (poiché sembri avere un Mac, dovresti provare la versione per Mac poiché è "l'originale")

Quindi sì, è un'idea che vale la pena esplorare, tuttavia: il passaggio dalla modalità grafica a quella di solo testo deve essere rapido poiché non ho sempre bisogno delle immagini visualizzate. Inoltre, deve essere pienamente compatibile con ad es. Vim ..


Ho letto di questo progetto una volta prima su Slashdot . Sembra intrigante! Peccato che tu abbia bisogno di Google Chrome per usarlo ... beh, okay, non è poi così male se usi Chrome per cominciare, ma sembra una dipendenza non necessaria.
Christopher Kyle Horton,

@ WarriorIng64 Sì, potrei funzionare se hackerassi un po 'con Webtit di Qt - ma per fortuna abbiamo chromium-browseri repository, quindi è abbastanza facile installare qualcosa di Chromelike - Non ho davvero provato TermKit sul mio computer (con Chromium installato, ma usando Fx come principale) poiché sono abbastanza dipendente da Vim e non posso davvero usare un terminale che non mi darà il mio amato editor di testi;)
sakjur

8

Questo non esiste; gnome-terminalè in grado di visualizzare solo testo, almeno per quanto ne so.

Tuttavia, puoi chiamare un visualizzatore di immagini dalla riga di comando per vedere le tue foto in una cartella specifica. Quindi, uscendo dal tuo mockup sopra che mostra l'elenco di tutte le immagini .jpg nella cartella corrente, puoi usare Eye of GNOME (il visualizzatore di immagini predefinito di Ubuntu) dalla riga di comando per qualcosa di simile:

eog *.jpg &

Si noti che la finestra che viene visualizzata mostrerà solo un'immagine alla volta, sebbene sia possibile utilizzare i pulsanti freccia forniti per spostarsi tra di esse.


1
se è in esecuzione da un terminale, eog *.jpg & disownè meglio, altrimenti l'EOG uscirà probabilmente alla chiusura del terminale. NB Vorrei che EOG fosse ancora il visualizzatore di immagini deficito di Ubuntu - Shotwell è buono, ma cerca di indicizzare i miei 30 GB + di foto .... ed è comunque lento e fastidioso
Wilf

Tutte le risposte precedenti dimostrano che questo post è sbagliato.
Arnaud De Broissia,

7

Ho scritto uno strumento per farlo. Ho chiamato il mio Show Image In Terminal ( siit). Presuppone che tu abbia un terminale a 256 colori e il supporto UTF8, ed è scritto in perl.

L'ho lasciato cadere nel mio ~/bin. Presuppone che tu abbia Image :: Magick, Term :: Size, Getopt :: Long e Time: HiRes, che dovrebbero essere tutti disponibili nei repository della tua distribuzione o CPAN.

Il mio intento era di lanciarmi a casa mia e di visualizzare rapidamente le immagini senza lanciare un display su X. Lo script si ridimensiona in modo da ottenere la larghezza / altezza appropriate per il terminale in cui ti trovi. Ho usato i caratteri UTF8 per raddoppiare efficacemente la risoluzione verticale del tuo terminale, che in realtà aiuta la chiarezza. YMMV.

Scatti di esempio qui

Codice sorgente qui


1
È "siit", non "merda" (sul serio ...)
Star OS

Inizialmente si chiamava termpeg, ma è troppo difficile da ricordare e non è stato completato correttamente. Inoltre, "questo codice è un pezzo di siit" non ha nemmeno senso.
Tom,

2
Il link del codice sorgente non funziona per me, ma ho trovato una versione su Internet, ecco un mirror: gist.github.com/certik/4336299de10f400ee49943bd9f8a8ba6
Ondřej Čertík

Hai qualche possibilità di fornire una versione in bundle? Mi arrendo sempre quando devo installare le librerie.
Sridhar Sarnobat,

6

Oltre alla risposta di Joel , il file manager del terminale Ranger con w3mimgdisplayestensione può mostrare le immagini a colori e supporta anche "anteprime artistiche ASCII di vecchia scuola". Ecco come è possibile abilitarlo. Questo potrebbe non essere esattamente quello che stavi cercando, ma un modo per visualizzare in anteprima le immagini nel terminale.

inserisci qui la descrizione dell'immagine


4

Un altro strumento è catimg , anche se non esiste un pacchetto pronto per Ubuntu. In realtà non visualizza l'immagine ma la trasforma in caratteri colorati.

inserisci qui la descrizione dell'immagine


3

Ecco alcune soluzioni in node.js(Istruzioni di installazione qui ).

  1. picture-tube

  2. l'imaging

Per installare uno, digitare npm install -g <package_name>dove si package_nametrova uno picture-tubeo imaging.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.