Posso vedere immagini e guardare film all'interno dell'emulatore di terminale


Risposte:


5

Numerosi emulatori di terminale supportano Sixel Graphics , dalla pagina github di PySixel , l'elenco è:

  • rlogin
  • tanasinn
  • mlterm
  • XTerm
  • DECterm
  • Kermit
  • WRQ Reflection
  • ZSTEM

È possibile visualizzare le immagini con il summenzionato PySixel , che sembra essere in grado di fare le conversioni necessarie. Un'altra opzione è quella di utilizzare gli strumenti di netpbm. Ho ottenuto buoni risultati usando quanto segue per convertire e visualizzare un'immagine JPEG su mlterm:

jpegtopnm image.jpg | pnmquant 256 | ppmtosixel >/dev/tty

Risultato:

mlterm mostra l'immagine di Sixel

XTerm può anche visualizzare immagini Sixel, sebbene il supporto sia attualmente limitato a 16 colori (ed è anche difettoso). Un archivio contenente immagini di esempio può essere scaricato qui , anche se gli script sembrano essere rotti. XTerm non visualizza il formato esatto di output ppmtosixel(non supporta le sequenze di controllo utilizzate all'inizio / alla fine). Prima di trovare PySixel, ho usato il seguente script per incidere l' ppmtosixeloutput in qualcosa che XTerm mostrerà:

#!/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

Le immagini non verranno visualizzate nella modalità VT420 predefinita. Saranno visualizzati solo nelle modalità VT240, VT241, VT330 o VT340. Inoltre --enable-sixel-graphicsè richiesta l' opzione di compilazione. Ho trovato i migliori risultati con VT340 ( xterm -ti vt340). Ecco i risultati (la prima è un'immagine tron ​​molto interessante dall'archivio di esempio):

inserisci qui la descrizione dell'immagine


1
La tua sceneggiatura non è esattamente robusta con l'eco, la testa e la coda. Il problema che stai cercando di combattere è che xterm in modalità utf8 ha problemi con i codici c1 a 8 bit. Fortunatamente i codici c1 possono anche essere codificati a 7 bit. perl -wpe 'use bytes;s!([\x80-\x9f])!qq(\e).chr(ord($1)-64)!ge'funziona come un ottimo filtro dopo ppmtosixel (e tutte le altre volte che si desidera cambiare i codici c1 a 8 bit con i loro equivalenti a 7 bit).
Il

Esiste qualcosa di simile per Konsole o altri emulatori di terminali moderni?
ctrl-alt-delor

5

Terminologia

è quello che vuoi.

Ad esempio: voglio cambiare lo sfondo del mio terminale?

printf '\033}bp%s\000' \
  'http://hdwalldesktops.com/wp-content/uploads/2014/02/background-backgrounds-high-resolution-abstract-picture-background-wallpaper.jpg'

Che cosa fa?

Emula un vt100 leggermente esteso con alcune estensioni e bling inseriti.

> 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...

Lo vedi sopra? Lo fa nel framebuffer.


2

Di recente ho scoperto Frame Buffer Image viewer, fbi.


1

Sì, una specie di. Mplayer, ad esempio, supporta sia il rendering aalib (monocromatico) che libcaca (colore) del video in un terminale di testo. Non è esattamente ad alta risoluzione, ma con sia il rendering sotto "pixel" che il dithering temporale aumentano la risoluzione effettiva, di solito puoi dire cosa sta succedendo.


0

Nel mondo Unix gli emulatori di terminali emulano terminali seriali, dove il flusso di dati da mostrare all'utente viene inviato uno alla volta su una linea seriale.

Al tempo del modem, in genere, era di circa 1000-2000 caratteri al secondo, ma oggi potrebbe essere molto più veloce se fosse coinvolto solo l'hardware emulato. Spetta quindi al terminale comprendere i byte inviati. Di solito questo era per mostrare i personaggi, spostare il cursore e manipolare la visualizzazione dello schermo. Alcuni terminali potrebbero passare alle modalità grafiche - gnuplot supporta un bel po '- ma la larghezza di banda è troppo piccola per fare qualcosa di interessante in termini di video.

Tuttavia, per un computer moderno con hardware emulato un emulatore di terminale può fare molto. Prova a cercare immagini con il termine di ricerca "ttyquake" per vederne alcune. Direi però che se desideri l'HD sarai molto deluso.

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


Si noti che alcuni emulatori di terminale possono fornire estensioni specifiche del fornitore.
Thorbjørn Ravn Andersen,

0

Per la visualizzazione delle immagini, vai su fim

Per l'opzione di riproduzione video, utilizzare mplayer

MODIFICARE:

Piuttosto fim, prova il tubo dell'immagine . Anche se non l'ho ancora testato


Questo è per il framebuffer della console Linux, non un emulatore di terminale.
Graeme,
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.