Puis-je voir des images et regarder des films à l'intérieur de l'émulateur de terminal? En cas de console virtuelle, je peux le faire via framebuffer, mais qu'en est-il des émulateurs de terminaux?
Puis-je voir des images et regarder des films à l'intérieur de l'émulateur de terminal? En cas de console virtuelle, je peux le faire via framebuffer, mais qu'en est-il des émulateurs de terminaux?
Réponses:
Un certain nombre d'émulateurs de terminaux prennent en charge Sixel Graphics , à partir de la page github de PySixel , la liste est:
Vous pouvez afficher les images avec le PySixel mentionné ci- dessus , qui semble être capable de faire les conversions nécessaires. Une autre option consiste à utiliser les outils de netpbm
. J'ai obtenu de bons résultats en utilisant ce qui suit pour convertir et afficher une image JPEG sur mlterm:
jpegtopnm image.jpg | pnmquant 256 | ppmtosixel >/dev/tty
Résultat:
XTerm peut également afficher des images Sixel, bien que le support soit actuellement limité à 16 couleurs (et est également bogué). Une archive contenant des exemples d'images peut être téléchargée ici , bien que les scripts semblent rompus. XTerm n'affiche pas le format exact produit par ppmtosixel
(il ne prend pas en charge les séquences de contrôle utilisées au début / à la fin). Avant de trouver PySixel
, j'ai utilisé le script suivant pour pirater la ppmtosixel
sortie dans quelque chose que XTerm affichera:
#!/bin/bash
echo -e '\eP0;0;0;q"1;2;400;400'
jpegtopnm "$1" |
pnmquant 16 |
ppmtosixel |
tail -n +2 |
head -c -3
echo -e '\x1b\x5c\x0d'
tput cup "$(tput lines)" 0
Les images ne seront pas affichées dans le mode VT420 par défaut. Seuls les modes VT240, VT241, VT330 ou VT340 seront affichés. L' --enable-sixel-graphics
option de construction est également requise. J'ai trouvé les meilleurs résultats avec le VT340 ( xterm -ti vt340
). Voici les résultats (le premier est une image tron très cool de l'archive d'échantillon):
perl -wpe 'use bytes;s!([\x80-\x9f])!qq(\e).chr(ord($1)-64)!ge'
fonctionne comme un excellent filtre après ppmtosixel (et toutes les autres fois où vous voulez changer les codes c1 8 bits en leurs équivalents 7 bits)
Par exemple - je veux changer l'arrière-plan de mon terminal?
printf '\033}bp%s\000' \
'http://hdwalldesktops.com/wp-content/uploads/2014/02/background-backgrounds-high-resolution-abstract-picture-background-wallpaper.jpg'
Il émule un vt100 légèrement étendu avec quelques extensions et bling.
> Most escapes supported by xterm, rxvt etc. work
> Xterm 256 color escapes work
> Backgrounds (bitmap, scalable/vector, animated gif, videos)
> Transparency
> Bitmap and scalable fonts supported
> Themes for the layout and design
> URL, file path and email address detection and link-handling
> Inline display of link content
> Multiple copy and paste selections and buffer support
> Works in X11
> Works in Wayland
> Works directly in the linux framebuffer (fbcon)
> Can be finger/touch controlled
> Scan scale by UI scaling factors
> Can render using OpenGL or OpenGL-ES2 (not a requirement - just an
option)
> Can display inlined media content (images, video, documents)
> Can do multiple "tabs"
> Can do splitting into multiple panes
> Block text selection
> Drag and drop of text selections and links
> Can stream media from URLs
> Tab switcher has live thumbnail content
> Single process, multiple windows/terminals support
> Fast (gives urxvt a run for its money)
> Themable visual bell
> Compress backscroll
> Text reflow on resize
> Color palette selection
> More...
Vous voyez ça plus haut? Il le fait dans le framebuffer.
J'ai récemment découvert la visionneuse d'images de mémoire tampon, fbi.
Oui, en quelque sorte. Mplayer, par exemple, prend en charge le rendu aalib (monochrome) et libcaca (couleur) de la vidéo dans un terminal texte. Ce n'est pas exactement une haute résolution, mais avec un rendu sous-pixel et un tramage temporel augmentant la résolution effective, vous pouvez généralement savoir ce qui se passe.
Dans le monde Unix, les émulateurs de terminaux émulent des terminaux série, où le flux de données à afficher à l'utilisateur est envoyé un par un sur une ligne série.
À l'heure du modem, cela représentait généralement entre 1 000 et 2 000 caractères par seconde, mais peut être beaucoup plus rapide aujourd'hui si seul du matériel émulé est impliqué. Il appartenait alors au terminal de comprendre les octets envoyés. Habituellement, c'était pour montrer des personnages, déplacer le curseur et manipuler l'affichage à l'écran. Quelques terminaux pourraient passer en mode graphique - la prise en charge de gnuplot un peu - mais la bande passante est beaucoup trop petite pour faire quoi que ce soit d'intéressant en termes de vidéo.
Pourtant, pour un ordinateur moderne avec du matériel émulé, un émulateur de terminal peut faire beaucoup. Essayez de rechercher des images avec le terme de recherche "ttyquake" pour en voir une partie. Je dirais cependant que si vous avez envie de HD, vous serez très probablement déçu.