Comment faire pour que mon terminal affiche des images graphiques?

111

Il s’agit d’une maquette rapide que j’ai copiée et collée ensemble. J'imagine que c'est super cool et utile.

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

    
posée Dennkster 22.01.2012 - 10:41
la source

12 réponses

48

Peut-être que caca est ce que vous voulez. Pour les 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ée dans cacaview :

Je l’utilisais parfois pour le plaisir de regarder des vidéos au format ASCII dans mplayer :) Comme ceci:

mplayer -vo caca /PATH/TO/video.mpg
    
réponse donnée user569825 07.09.2012 - 13:35
la source
30

Vous ne pouvez pas le faire dans une fenêtre de terminal, mais vous pouvez le faire dans une 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.

    
réponse donnée Amith KK 22.01.2012 - 11:12
la source
26

1. w3m

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

Maintenant, taper w3m <image_name> affichera l'image dans le terminal. w3m utilisera la totalité de la fenêtre du terminal, vous ne pourrez donc pas voir vos commandes précédentes avant de quitter w3m (pensez à less et non à 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 que w3m images en ligne ne fonctionnerait pas pour gnome-terminal , cela fonctionne très bien pour moi. Il est un peu gênant que vous ayez à 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 les fichiers texte et aime imgcat fonctionne pour iTerm2 sous OS X.

3. libsixel + mlterm / xterm

Installez libsixel-bin et tout terminal compatible (exemples mentionnés sous "Configuration requise" de ce fichier Readme , par exemple mlterm ou xterm compilé avec les indicateurs appropriés et vous pouvez afficher les images avec la commande img2sixel . Ces deux packages sont disponibles dans les dépôts Ubuntu.

4. FIM

Ensuite, il existe FIM 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 du trunk, en exécutant ./configure --disable-exif , puis en supprimant temporairement anaconda (distribution python) de mon chemin, car cela provoquait un conflit avec libpng % et make (vous devez écrire un numéro de version manuellement avec sudo checkinstall , mais il est plus facile de le supprimer que checkinstall ). Cependant, les images sont toujours affichées dans une fenêtre séparée, bien que, comme avec make install , vous n’avez pas besoin d’exécuter X, ce qui est plutôt cool.

5. jupyter-qtconsole

Vous pouvez également faire preuve de créativité et utiliser jupyter-qtconsole comme console système, le configurer pour afficher les graphiques en ligne ( fbi ), puis afficher l'image à l'aide de matplotlib =)

6. feh

%matplotlib inline utilise X pour afficher les images, mais feh les affiche dans une fenêtre sans bordure qui peut être rapidement fermée avec feh -x ou q . 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’à ce que x obtienne un équivalent gnome-terminal / imgcat . / p>     

réponse donnée Joel Ostblom 14.11.2015 - 23:28
la source
24

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: lien

Installation:

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

Utilisation:

tiv <image(s)>

Modifier : liens / instructions modifiés dans le référentiel principal; utilisation supplémentaire.

Exemples:

    
réponse donnée Stefan Haustein 09.04.2016 - 01:06
la source
18

Une autre alternative est la terminologie:

lien

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

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 & gt; = vives (15.04), elles peuvent être extraites des dépôts officiels.

sudo apt-get install terminology

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

    
réponse donnée Javier López 27.02.2014 - 03:09
la source
18

J'ai créé une fonction simple, rapide, 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:-; }

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 à partir de la ligne de commande ( xterm -ti vt340 ).

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

MISE À 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: lien .

    
réponse donnée hackerb9 31.05.2017 - 13:24
la source
12

Il existe en fait un tel projet nommé TermKit , si vous souhaitez le tester - consultez lien mais il est assez inachevé (puisque vous semblez avoir un Mac, vous devriez essayez la version Mac car c'est "l'original")

Alors oui, c'est une idée qui mérite d’être explorée, cependant, 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 ..

    
réponse donnée sakjur 22.01.2012 - 11:39
la source
8

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 à partir de la ligne de commande pour voir vos images dans un dossier particulier. Donc, 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 (le visualiseur d'images par défaut d'Ubuntu) depuis la ligne de commande pour quelque chose de similaire:

eog *.jpg &

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

    
réponse donnée Christopher Kyle Horton 22.01.2012 - 11:12
la source
6

J'ai écrit un outil pour ce faire. J'ai nommé le mien Show Image In Terminal ( siit ). Cela suppose que vous ayez un terminal 256 couleurs et un support UTF8, et que ceci est écrit en perl.

Je l'ai déposé dans mon ~/bin . Cela suppose que vous ayez Image :: Magick, Term :: Size, Getopt :: Long et Time: HiRes, qui devraient tous être disponibles dans les référentiels de votre distribution, ou CPAN.

Mon intention était de ssh dans ma maison et de visualiser rapidement les images sans lancer d’affichage sur X. Le script s’étend à la largeur / hauteur appropriée du terminal dans lequel vous vous trouvez. J'ai utilisé des caractères UTF8 pour doubler , ce qui aide vraiment la clarté. YMMV.

Exemples de captures ici

Code source ici

    
réponse donnée Tom 04.05.2013 - 17:04
la source
3

Voici quelques solutions dans node.js (instructions d’installation ici ).

  1. image-tube

  2. imagerie

Pour l’installer, tapez npm install -g <package_name>package_name correspond à picture-tube ou imaging .

    
réponse donnée Nemo 02.02.2014 - 14:54
la source
3

En plus de la réponse de Joel , Ranger avec l'extension w3mimgdisplay peut afficher les images en couleur et prend également en charge les" aperçus d'art ASCII oldschool ". Ici , vous pouvez l'activer. Ce n'est peut-être pas exactement ce que vous cherchiez, mais un moyen de prévisualiser les images dans un terminal.

    
réponse donnée Ahmet Seha Çelenk 13.05.2017 - 09:32
la source
2

Un autre outil est catimg , bien qu’il n’y ait pas de paquet prêt pour Ubuntu. Il ne visualise pas réellement l’image mais la transforme en caractères colorés.

    
réponse donnée some user 27.09.2016 - 16:32
la source

Lire d'autres questions sur les étiquettes