Puis-je voir des images et regarder des films à l'intérieur de l'émulateur de terminal


Réponses:


5

Un certain nombre d'émulateurs de terminaux prennent en charge Sixel Graphics , à partir de la page github de PySixel , la liste est:

  • RLogin
  • tanasinn
  • mlterm
  • XTerm
  • DECterm
  • Kermit
  • Réflexion WRQ
  • ZSTEM

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:

mlterm affichant une image Sixel

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 ppmtosixelsortie 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-graphicsoption 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):

entrez la description de l'image ici


1
Votre script n'est pas exactement robuste avec les échos et la tête et la queue. Le problème que vous essayez de combattre est que xterm en mode utf8 a des problèmes avec les codes c1 8 bits. Heureusement, les codes c1 peuvent également être encodés en 7 bits. 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)
hildred

Existe-t-il quelque chose comme ça pour konsole ou d'autres émulateurs de terminaux modernes?
ctrl-alt-delor

5

Terminologie

c'est ce que tu veux.

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'

Qu'est ce que ça fait?

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.


2

J'ai récemment découvert la visionneuse d'images de mémoire tampon, fbi.


1

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.


0

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.

http://onyx.chattanoogastate.edu/~jack/matrix/insert.jpg


Notez que certains émulateurs de terminaux peuvent fournir des extensions spécifiques au fournisseur.
Thorbjørn Ravn Andersen

0

Pour la visualisation d'images, optez pour fim

Pour l'option de lecture vidéo, utilisez mplayer

ÉDITER:

Plutôt fim, essayez le tube à images . Bien que je ne l'ai pas encore testé


C'est pour le framebuffer de la console Linux, pas pour un émulateur de terminal.
Graeme
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.