Question Comment puis-je afficher des images graphiques sur mon terminal?


Ceci est une maquette rapide que je copie et colle ensemble. J'imagine que c'est super cool et utile.

Est-ce que quelque chose comme ça existe déjà?

http://imgur.com/Z3DbS


111
2018-01-22 09:41


origine


Je utilise toujours juste feh! Je sais que ce n'est pas dans le terminal, mais c'est du boulot. - dylnmc
Le terminal n'est pas conçu pour les graphiques, il peut uniquement afficher des caractères Unicode et effectuer des colorations. Le mieux que vous puissiez obtenir est l'art ASCII. - Ben
J'aime utiliser le terminal pour les graphiques avec itermplot, qui n'est malheureusement que macOS. - miku
Cette question est-elle motivée par la petite image de bière dans Homebrew? C'est un emoji. - Ekevoo
Je parie que quelqu'un pourrait écrire une extension chrome qui utilise ssh mais fournit un gestionnaire de fichiers graphique plutôt que textuel. J'adorerais le voir. Pour l'instant, seul javascript + webdav se rapproche. - Sridhar-Sarnobat


Réponses:


Peut être caca est ce que tu veux Pour images:

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

Assurez-vous que la fenêtre de votre terminal est suffisamment grande.

Par exemple, voici comment cette image est affiché dans cacaview:

Screenshot

Je l'ai parfois utilisé pour m'amuser regarder des vidéos en ASCII dans mplayer :) Comme ça:

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

50
2017-09-07 11:35



Très utile - une commande de caca-utils qui devrait afficher des images en ligne dans le terminal est img2txt - Wilf
Il y a un nouveau joueur sur le terrain maintenant: github.com/ichinaski/pxl --- Dans un test rapide, les images ont l'air mieux que dans cacaview. (Je voulais ajouter une nouvelle réponse, mais le site ne m'a pas laissé (?)) - user569825
"regarder des vidéos en ASCII" Mais pourquoi? - Derek 朕會功夫
cela ouvre une autre fenêtre. OP a demandé un terminal. Je pense que vous devriez suggérer img2txt. - Blauhirn
Cela dépend de votre environnement. Dans un terminal non-X, il s'ouvre comme prévu. Dans X, il y a probablement aussi une solution. Je pense que cela peut dépendre du terminal utilisé ou de ses dimensions. - user569825


1. w3m

Alors que le but principal de w3m est de fournir une navigation Web dans la console, il peut également être utilisé pour afficher des images dans le terminal. Les paquets à installer sont w3m et w3m-img (sur Ubuntu au moins). Vous devez ensuite désactiver la visionneuse d'image externe en passant -o ext_image_viewer=0 ou en allant dans le menu d'options ('o') à l'intérieur w3m et désactiver l'affichage des images externes.

Maintenant, en tapant w3m <image_name> affichera l'image dans le terminal. w3m utilisera toute la fenêtre du terminal, vous ne pourrez donc pas voir vos commandes précédentes avant de quitter w3m (pense less, ne pas cat). Notez que si l'image est trop grande pour s'adapter à la fenêtre du terminal, elle sera toujours ouverte en externe (dans imagemagick pour moi). Notez également que même si je lis plusieurs endroits w3m les images en ligne ne fonctionneraient pas pour gnome-terminal, ça marche bien pour moi. C'est un peu gênant de devoir taper q deux fois pour fermer d'abord l'image, puis w3m.

2. Terminologie

tycat fait partie de terminology et affiche des images comme cat affiche des fichiers texte et similaires imgcat fonctionne pour iTerm2 sur OS X.

3. libsixel + mlterm / xterm

Installer libsixel-bin et tout terminal compatible (exemples mentionnés sous "Exigences" de ce readme, par exemple mlterm ou xterm compilé avec les bons drapeaux et vous pouvez voir les images avec le img2sixel commander. Ces deux packages sont disponibles dans les dépôts Ubuntu.

4. FIM

Ensuite il y a FIM qui est une version améliorée de fbi. La page d'accueil indique qu'il peut afficher des images non seulement avec le framebuffer, mais également avec X. Cependant, il ne sera pas installé pour moi. modifier Je l'ai fait fonctionner en téléchargeant la version 0.5 trunk, en cours d'exécution ./configure --disable-exif puis retirer temporairement anaconda (distribution python) de mon chemin car il a provoqué un conflit avec libpng avant de courir make et sudo checkinstall (vous devez écrire un numéro de version manuellement avec checkinstall, mais il rend plus facile à supprimer que make install). Cependant, les images sont toujours affichées dans une fenêtre séparée, mais comme avec fbi vous n'avez pas besoin de lancer X, ce qui est plutôt cool.

5. jupyter-qtconsole

Vous pouvez également être créatif et utiliser jupyter-qtconsole comme console système, le configurer pour afficher les tracés en ligne (%matplotlib inline) et alors afficher l'image à l'aide de matplotlib =)

6. feh

feh utilise X pour afficher des images, mais feh -xles ouvre dans une fenêtre sans frontière qui peut être rapidement fermée avec q ou x. Bien que les images ne soient pas affichées dans le terminal par exemple, je pensais que cela valait la peine d’être mentionné, car c’est la méthode la moins intrusive que j’ai trouvée jusqu’ici et ce que j’utilise jusqu’à présent. gnome-terminal obtient un imgcat/tycat équivalent.


30
2017-11-14 22:28



w3m utilise caca-utils, il serait donc préférable de l'utiliser directement (cacaview e.jpg) - user1133275


Vous ne pouvez pas le faire dans une fenêtre de terminal, mais vous pouvez le faire dans un Console Linux en utilisant fbi. Vous avez besoin d'un framebuffer pour que cela fonctionne:

sudo apt-get install fbi

Accédez à une console Linux (en utilisant Control-Alt-F1) et entrez fbi <filename>

Il devrait montrer votre image.


30
2018-01-22 10:12



Que voulez-vous dire par "terminal" vs "tty"? Ne sont-ils pas la même chose? askubuntu.com/questions/506510/… - Wernight
N'a pas fonctionné pour moi Mais l'outil "caca" a fonctionné. en utilisant "DejaVu Sans Mono-16", pixelsize = 16.67 fichier = / usr / share / fonts / truetype / dejavu / DejaVuSansMono.ttf ioctl VT_GETSTATE: ioctl inapproprié pour le périphérique (pas une console Linux?) - Felipe
@Wernight Ctrl + Alt + F1 / F2 / F3 vous donne un tty sous ubuntu (Ctrl + Alt + F8 pour revenir). - Joel Ostblom
Il y a aussi FIM qui est une version améliorée de fbi. La page d'accueil indique qu'il peut afficher des images non seulement avec le framebuffer, mais également avec X. Cependant, il ne sera pas installé pour moi. - Joel Ostblom
Bonne nouvelle iTerm2 v3 peut afficher des images en ligne iterm2.com/images.html - A B


J'ai écrit un petit outil C ++ pour convertir les images en codes de contrôle ANSI RGB et en caractères graphiques Unicode pour les terminaux modernes prenant en charge ces fonctionnalités:https://github.com/stefanhaustein/TerminalImageViewer

Installation:

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

Usage:

tiv <image(s)>

modifier: Modification des liens / instructions dans le référentiel principal; utilisation supplémentaire.

Exemples:

TerminalImageViewer


24
2018-04-08 23:06



Cela a l'air très bien! Mais est-ce Java ou C ++? - Andrea Lazzarotto
C'était java, mais la nécessité d’une JVM pour cette tâche simple me gênait, donc je l’ai portée en C ++ (les captures d’écran montrent toujours la commande java). - Stefan Haustein
Bien mieux que cacaview! - Piotr Dabkowski
Ceci est un outil incroyable. Certainement plus lent, mais beaucoup mieux que caca. Y a-t-il une perte de qualité lors de l'utilisation du "mode 256 bits"? (depuis que je dois, le mode normal est foiré) - Blauhirn
Très bons résultats! Merci ! Très utile avec ssh quand aucun serveur x n'est disponible! - Arnaud De Broissia


Une autre alternative est la terminologie:

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

Vous pouvez l’installer sur Ubuntu en ajoutant le illumination-git dépôt:

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

Ou dans les dernières versions d'Ubuntu> = Vivid (15.04), il peut être extrait des dépôts officiels.

sudo apt-get install terminology

Pour voir une image, tapez tycat IMAGENAME, et pour afficher une liste d'images, tapez tyls -m.


18
2018-02-27 02:09



tycatpour afficher une image en ligne et tyls -m pour afficher des vignettes de taille moyenne dans un répertoire. - Joel Ostblom
sudo add-apt-repository ppa: hannes-janetzek / enlightenment-svn ne fonctionne pas - Gucho Ca
J'ai mis à jour la réponse pour indiquer le ppa plus récent de l'illumination - Javier López
@ chilicuil terminology est dans les dépôts officiels d'Ubuntu, aucun PPA nécessaire. - cat
@cat la réponse originale a été écrite avant la sortie de vivid et à ce moment la terminologie n'était pas disponible, le ppa enlightenment a toujours des paquets précis / fiables et des versions terminologiques plus récentes. Cependant, éditer la réponse pour indiquer que des versions terminologiques gelées sont disponibles dans les dernières versions d'ubuntu sera peut-être utile. - Javier López


J'ai créé une fonction simple, rapide et simple, qui résout la question originale exactement comme demandé dans les maquettes. Notez que les captures d'écran ci-dessous sont des images réelles, pas des maquettes.

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

Screenshot of using the lsix command

Les prérequis sont minimes: xterm et ImageMagick (apt-get install xterm imagemagick). Votre xterm doit être en mode vt340, que vous pouvez définir dans ~/.Xresources ou de la ligne de commande (xterm -ti vt340).

Limitations: seules 16 couleurs sont utilisées tout images affichées. Cela signifie qu'une image peut sembler meilleure quand elle est vue seule. (Voir ci-dessous).

Screenshot showing 16 color limitation

METTRE À JOUR

Bien que ma réponse ci-dessus soit toujours correcte, j'ai créé un script shell encore meilleur qui est capable de faire un «ls» d'images directement dans un terminal. Il ya toutes sortes d’améliorations que j’ai ajoutées pour améliorer l’apparence des images (plus de couleurs, une bonne alpha, une bonne orientation JPEG, beaucoup d’images, une disposition compacte des mosaïques,…). C'est toujours un programme assez petit, mais je pensais que les gens pourraient vouloir le personnaliser, alors je l'ai mis sur github: https://github.com/hackerb9/lsix.


18
2018-05-31 11:24





Il y a en fait un tel projet nommé TermKit, si vous souhaitez le tester - consultez http://blog.easytech.com.ar/2011/05/21/playing-with-termkit-with-chrome/ mais c'est assez inachevé (puisque vous semblez avoir un Mac, vous devriez essayer la version Mac puisque c'est "l'original")

Donc, oui, c'est une idée qui mérite d'être explorée - le passage du mode graphique au mode texte seul doit être rapide car je n'ai pas toujours besoin des images vues. En outre, il doit être entièrement compatible avec, par exemple, Vim ..


12
2018-01-22 10:39



J'ai lu sur ce projet une fois avant Slashdot. Ça a l'air intrigant! Dommage que vous ayez besoin de Google Chrome pour l'utiliser ... bon, d'accord, ce n'est pas trop grave si vous utilisez Chrome pour commencer, mais cela semble être une dépendance inutile. - Christopher Kyle Horton
@ WarriorIng64 Oui, je pourrais fonctionner si vous piratez un peu le WebKit de Qt - mais heureusement nous avons le chromium-browser dans les repos, de sorte qu'il est assez facile d'installer quelque chose Chromelike - Je n'ai pas vraiment essayé TermKit sur mon ordinateur (avec Chromium installé, mais en utilisant Fx comme principal) puisque je suis très dépendant de Vim, et ne peut pas vraiment utiliser un terminal qui ne me donnera pas mon éditeur de texte bien-aimé;) - sakjur


Cela n'existe pas; gnome-terminal est seulement capable d'afficher du texte, au moins pour autant que je sache.

Cependant, vous pouvez appeler un visualiseur d'images depuis la ligne de commande pour voir vos images dans un dossier particulier. Ainsi, en sortant de votre maquette ci-dessus vous montrant la liste de toutes les images .jpg du dossier actuel, vous pouvez utiliser Eye of GNOME (visionneuse d'images par défaut d'Ubuntu) à partir de la ligne de commande pour quelque chose de similaire:

eog *.jpg &

Notez que la fenêtre qui apparaît ne montrera qu’une image à la fois, bien que vous puissiez utiliser les boutons fléchés fournis pour les parcourir.


8
2018-01-22 10:12



si courir depuis un terminal, eog *.jpg & disown est préférable car sinon l'EOG sortira probablement à la fermeture du terminal. N.B. Je souhaite que EOG soit toujours le visualiseur d'images par défaut d'Ubuntu - shotwell est bon, mais essaie d'indexer mes 30 Go + de photos .... et est quand même lent et agaçant - Wilf