1# llimphi-term-graphics23*Read this in English: [README.md](README.md).*
45Decodificador agnóstico de protocolos de gráficos de terminal.
67Dos protocolos cubiertos:
8- **kitty graphics protocol** — secuencias APC `\e_G<control>;<base64>\e\\`.
9 Soporta transmisión chunked (`m=1`), formatos `f=100` (PNG/JPEG/… vía el
10 crate `image`), `f=24` (RGB crudo) y `f=32` (RGBA crudo), y compresión
11 `o=z` (zlib). Acciones `t`/`T` (transmitir [y mostrar]), `q` (query),
12 `d` (delete).
13- **sixel** — secuencias DCS `\eP<params>q<datos>\e\\`. Decodificador a mano
14 (paleta, selección de color `#`, RLE `!`, CR `$`, LF `-`, atributos
15 raster `"`).
1617El corazón es `GraphicsScanner`: un autómata streaming al que se le
18alimentan los chunks de bytes del PTY. Deja pasar **intacto** todo el texto
19y los escapes ANSI normales (para que el emulador vt100 los procese) y sólo
20**secuestra** las secuencias gráficas completas, que devuelve decodificadas
21como `GraphicsCommand`. No tiene estado de UI ni dependencias de render:
22produce píxeles RGBA8, el caller los sube a una textura / `peniko::Image`.
2324Robusto a fronteras de chunk: una secuencia partida entre dos `feed()`
25queda buffereada y se completa en la llamada siguiente.
2627---
2829Parte de **llimphi** — ver [llimphi](../LEEME.md).
Decodificador agnóstico de protocolos de gráficos de terminal.
Dos protocolos cubiertos:
kitty graphics protocol — secuencias APC \e_G<control>;<base64>\e\\.
Soporta transmisión chunked (m=1), formatos f=100 (PNG/JPEG/… vía el
crate image), f=24 (RGB crudo) y f=32 (RGBA crudo), y compresión
o=z (zlib). Acciones t/T (transmitir [y mostrar]), q (query),
d (delete).
sixel — secuencias DCS \eP<params>q<datos>\e\\. Decodificador a mano
(paleta, selección de color #, RLE !, CR $, LF -, atributos
raster ").
El corazón es GraphicsScanner: un autómata streaming al que se le
alimentan los chunks de bytes del PTY. Deja pasar intacto todo el texto
y los escapes ANSI normales (para que el emulador vt100 los procese) y sólo
secuestra las secuencias gráficas completas, que devuelve decodificadas
como GraphicsCommand. No tiene estado de UI ni dependencias de render:
produce píxeles RGBA8, el caller los sube a una textura / peniko::Image.
Robusto a fronteras de chunk: una secuencia partida entre dos feed()
queda buffereada y se completa en la llamada siguiente.