Vous voulez afficher des images sur votre terminal ? Sixel est fait pour vous.
Le Sixel ? Kesako ?
Wikipedia nous dit ceci:
Un Sixel (mot-valise de « six pixels ») est un format graphique bitmap supporté à l’origine par les terminaux et les imprimantes de DEC. Il est constitué d’un motif de six pixels de haut et d’1 en largeur, permettant ainsi d’obtenir 64 motifs différents. Chaque motif est assigné à un caractère ASCII, rendant les sixels faciles à transmettre sur les liaisons séries 7-bit.
Sixel a d’abord été créé comme un moyen de transmettre des images bitmap aux imprimantes matricielles de DEC, telles que la LA50. Après avoir été converties en « mode sixel » les données résultantes sont interprétées directement pour contrôler 6 des 9 broches de la tête d’impression. Une chaîne de caractères sixels encode une simple colonne de 6 pixels de haut de l’image.
Voila, le format Sixel vous permet donc d’afficher des graphismes dans votre terminal.
Tous les terminaux ne le supportent pas encore. Sur macOS, le bien connu (et open source) iTerm2 le permet. Pour les autres OS, voitre choix peux vous porter vers wezterm, open-source également.
Pour afficher une image, installer juste le package libsixel-bin
sudo apt-get install libsixel-bin
La commande img2sixel vous permet alors d’afficher l’image dans votre terminal (la plupart des formats d’images connus).
Si vous utilisez le navigateur web texte w3m, celui si possède une option pour afficher les images aussi.
w3m -sixel deadketchup.kyuran.be
Il n’y a pas énormément d’applications supportant le format sixel mais il existe une librarie permettant de remplacer la libsdl par sixel. Si l’envie de recompiler votre applications préféres, allez faire un tour du coté de SDL1.2-SIXEL
D’autres formats existent pour afficher des images. iTerm, par exemple possède son propre format. Kitty aussi. Ils ont tous leurs avangates et inconvénients.
J’approfondirais le sujet à l’avenir, il a sans doute plus à en dire… mais ceci est une autre histoire, qui sera contée une autre fois.