¿Puedo ver imágenes y ver películas dentro del emulador de terminal?


Respuestas:


5

Varios emuladores de terminal admiten Sixel Graphics , desde la página de github de PySixel , la lista es:

  • RIniciar sesión
  • tanasinn
  • mlterm
  • XTerm
  • DECterm
  • Kermit
  • Reflexión WRQ
  • ZSTEM

Puede mostrar las imágenes con el PySixel mencionado anteriormente , que parece poder realizar las conversiones necesarias. Otra opción es usar herramientas de netpbm. Tuve buenos resultados usando lo siguiente para convertir y mostrar una imagen JPEG en mlterm:

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

Resultado:

mlterm mostrando la imagen de Sixel

XTerm también puede mostrar imágenes Sixel, aunque el soporte actualmente está limitado a 16 colores (y también tiene errores). Aquí se puede descargar un archivo que contiene imágenes de muestra , aunque las secuencias de comandos parecen estar rotas. XTerm no muestra el formato exacto de salida ppmtosixel(no admite las secuencias de control utilizadas al inicio / final). Antes de encontrar PySixel, utilicé el siguiente script para piratear la ppmtosixelsalida en algo que XTerm mostrará:

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

Las imágenes no se mostrarán en el modo VT420 predeterminado. Solo se mostrarán en los modos VT240, VT241, VT330 o VT340. También --enable-sixel-graphicsse requiere la opción de compilación. Encontré los mejores resultados con VT340 ( xterm -ti vt340). Aquí están los resultados (el primero es una imagen tron ​​muy buena del archivo de muestra):

ingrese la descripción de la imagen aquí


1
Su guión no es exactamente robusto con los ecos y la cabeza y la cola. El problema que está tratando de combatir es que xterm en modo utf8 tiene problemas con los códigos c1 de 8 bits. Afortunadamente, los códigos c1 también pueden codificarse a 7 bits. perl -wpe 'use bytes;s!([\x80-\x9f])!qq(\e).chr(ord($1)-64)!ge'funciona como un gran filtro después de ppmtosixel (y en cualquier otro momento que desee cambiar los códigos c1 de 8 bits a sus equivalentes de 7 bits).
hildred

¿Hay algo como esto para konsole u otros emuladores de terminal modernos?
ctrl-alt-delor

5

Terminología

es lo que quieres

Por ejemplo, ¿quiero cambiar el fondo de mi terminal?

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

¿Qué hace?

Emula un vt100 ligeramente extendido con algunas extensiones y 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...

¿Ves eso arriba? Lo hace en el framebuffer.


2

Recientemente descubrí el visor de imágenes de búfer de marco, fbi.


1

Sí, más o menos. Mplayer, por ejemplo, admite la representación de video aalib (monocromo) y libcaca (color) en un terminal de texto. No es exactamente de alta resolución, pero con el renderizado de subpíxeles y el tramado temporal que aumentan la resolución efectiva, generalmente se puede saber qué está sucediendo.


0

En el mundo de Unix, los emuladores de terminal emulan terminales en serie, donde el flujo de datos que se mostrará al usuario se envía uno a la vez a través de una línea en serie.

En el tiempo del módem, esto normalmente era de alrededor de 1000-2000 caracteres por segundo, pero hoy puede ser mucho más rápido si solo se trata de hardware emulado. Luego fue hasta el terminal entender los bytes enviados. Por lo general, esto era para mostrar caracteres, mover el cursor y manipular la pantalla. Algunos terminales podrían cambiar a modos gráficos (gnuplot admite bastante), pero el ancho de banda es demasiado pequeño para hacer algo interesante en términos de video.

Aún así, para una computadora moderna con hardware emulado, un emulador de terminal puede hacer mucho. Intente buscar imágenes con el término de búsqueda "ttyquake" para ver algunas de ellas. Sin embargo, diría que si anhelas HD, lo más probable es que te decepciones.

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


Tenga en cuenta que algunos emuladores de terminal pueden proporcionar extensiones específicas del proveedor.
Thorbjørn Ravn Andersen

0

Para la visualización de imágenes, vaya para fim

Para la opción de reproducción de video, use mplayer

EDITAR:

Más bien fim, prueba el tubo de imagen . Aunque todavía no lo he probado


Esto es para el framebuffer de la consola de Linux, no para un emulador de terminal.
Graeme
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.