💾 Archived View for gem.ortie.org › gemlog › sixel.gmi captured on 2023-12-28 at 15:45:51. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-04-19)

🚧 View Differences

-=-=-=-=-=-=-

Sixel

La technologie sixel (six + pixel) permet d'afficher des images bitmap sur notamment les terminaux et imprimantes DEC (Digital Equipment Corporation) VT340, datant de 1987, mais elle est probablement bien antérieure à cela (début des années 80, voire fin des années 70).

https://fr.wikipedia.org/wiki/Sixel

Il est possible de profiter de cette technologie sur nos terminaux modernes, via l'Ă©mulation VT.

Le site "Are We Sixel Yet?" permet d'ailleurs de lister la prise en charge de cette technologie sur la plupart des Terminaux actuel.

https://www.arewesixelyet.com/

Pour xterm, il faut (parfois) le recompiler mais dans une version récente de xterm sur Debian Bookworm, je n'ai pas eu besoin de le faire :

./configure --enable-sixel-graphics --enable-regis-graphics

Et il faudra le démarrer avec ces options (cela cassera la gestion de l'unicode) :

xterm -ti vt340 +u8

mlterm -y vt340
img2sixel image.jpg

Pour afficher des images dans le terminal avec la nouvelle commande lsix :

function lsix() { montage -tile 7x1 -label %f -background black -fill white "$@" gif:- | convert - -colors 16 sixel:-; }

https://github.com/hackerb9/lsix

La séquence d'échappement [esc] s'écrit avec \e

 Exemples sixel

echo -e '\e

Pq"1;1;16;16#0;2;97;97;97#1;2;0;0;0#2;2;91;91;91#3;2;94;94;94#4;2;75;75;75#5;2;66;66;66#6;2;19;19;19#7;2;82;82;82#8;2;9;9;9#9;2;78;78;78#0!4^FF@@FNBB@B~~$#7_#1___?weCGOGCA{$#2!4?W??A#3??C$#8!4?_#5?W???O$#4!7?g___w{$#6!7?OO-#1Rkc_O_!7?@eW$#0c#4RBFN^!7~}W$#2G#9?OO#7_#0!9?@f$#5??G#8G-#0!6NKKKGGGKMNN$#1!6?@@BACCA@$#2!6?A#6A#4?CBB@$#7!9?@~

\e\'
echo -e '\e

Pq"1;1;110;104#0;2;6;9;13#1;2;19;25;16#2;2;44;56;28#3;2;28;38;19#4;2;41;53;28#5;2;50;66;31#6;2;31;41;22#7;2;53;72;35#8;2;35;44;22#9;2;35;47;25#10;2;9;13;13#11;2;25;35;19#12;2;47;63;31#13;2;22;28;16#14;2;16;22;16#15;2;53;69;35#16;2;9;16;13#17;2;22;31;19#18;2;44;60;28#19;2;25;31;19#20;2;13;16;13#21;2;38;50;25#22;2;16;19;16#23;2;28;38;22#0!110~-!44~N??wpBFN^!29~^^NNN^!22~$#1!44?_@???_#3!32?_?O#6_O#13_$#10!44?O#6CSCA???_#12!30?_#4_?_$#9!45?O!4?GO#2!33?O$#8!45?GG??C$#4!45?_A?G$#3!45?A?@#7CGo_$#2!46?@#5A?O$#11!46?_-#0!43~F?_}~~~{wo?@BFN^!11~^^NNfbbpxw{{}}{}{?@F!20~$#16!43?G#12_!6?A!5?_#6!12?_!5?C#1A!5?@?@?_?o$#20!43?o#3C!6?C?@#19AC#17G#1O_#5!12?_#4_!4?C?A!7?@s$#2!44?OA#14@???A#7@AKwo_#9!15?O?W#17O!4?@???@?@#6GA$#9!44?G#4D!6?G#5QCGO#12!16?O#2?G??C#18?A@@#20?A?A??G$#11!44?A#1O#8!4?@#15?D#22_#20!19?_#22?C#16O??@#11?A!5?O$#13!44?@#6G#21!30?G#3GAC#21!7?AG$#9!87?C-#0!31~!5^!5NFF?G!5N!4^]wo???@Ffbrpxw{{}}!15~}??!20~$#1!31?_!9?G??C!4?O#4???_???O!4?GG?C#19?C#12?@#20!17?@#2A#3O$#6!32?_!4?O!4?G!5?O#3!5?_!5?_!7?@#4!19?L#6_$#2!33?_#5___???OOOGO!5?__!4?C??_?O#6O???A#8!21?_#17@$#14!36?O#15_#7!5_o!6_!5?@BN][W#1??S?A???A#21!18?O#19M$#4!38?O#12O???C?OO!5?_!5?_#2AC!5?CA??@$#17!43?@#9A#2??O#8!6?@#18A??@??G!6?A$#21!43?A#18@#16!10?C?_#14?@#20A_!5?@???@$#23!56?G#9!7?K#17G-#0!27~^B?o}!4{!5w!5o!5_#4O!9?O!8?C#15??G#13C#16?O#1!11?C#2W#16B$#20!27?_C!7?C#2??CC!5?G#1O#19O#11O#16?_!4?_?___???@#6QO!6?C!14?@#4C#20{$#6!28?GP??A!4?C!5?G!6?O#20?!4_?_???@@@#3??AOO#1A!5?OG#11!11?A#9@$#2!28?O#21G!8?C!6?G#22O#12!5?O???OO#18P#2OO???A#19??A!6?O#22!13?G#18_$!28?_#12E!4?A!6?C#3G#8?G!14?@!4?O#17???A#12C!4?G#21!14?A$#19!29?_#15@!6?A#14???G#13!18?@#0!4_!5`!5bff!11~o??!19~$#16!30?K#7!7@!5B!5F!9N!6M!5K!5G$#17!30?A#4??A#5?AA!5?C!4?G!5?OOO?@!5?A!4?C#11!5O$#21!62?O#9O!7?CC??G-#0!5~NBr!5b!7B!5@!7?!5@!4B!4F!4N!40~??!19~$#11!5?O!5?O#8C#16_#3??CC!5?A!5?@!9?C#12G!4?_O#21_#16O#2!40?w#20~$#21!5?_???C#7!6GOO!4W[[[{!4}!5{!4wo!4O#18??_#22?_#18!40?F$#6!6?c!5?OCCC??C!8?@#2???A!9?G$#12!6?G!7?O!6?C???A#16!5?@!4?A#9C#6C!4?G???O$#4!6?OKC!4?O#23!5?_#21_???A#8!7?A#11A#19A#1A!8?G$#20!8?O!5?!4_??A!4?@@???@!9?C$#18!8?G#5G!5?OGG!4?__!4?@?A!4?C???G??__oO$#1!9?O!8?_??A#19A#15?_#4!11?C!5?G$#9!10?CC!7?C#2C#18_#15!18?__$#19!10?O-#0!4~B?o!19~!11}!52~w_F^!17~$#1!4?C?@#14!19?@#3@#9@#2@#4@@#8@#6@#11@#1@#22@#2!52?BC?_$!4?_C#16G#6!82?C?g$!4?GO#20E#14!83?P#5O$#4!4?O#11_#17!84?A$#12!5?B#18!84?G$#21!5?G-#0~~~p__FNN^!81~}woBF^!13~$#1???AOA#7O__#16!82?@#20C???_$#19???C?@#6G#13?O#3!83?AG#6CO$#14???G#4E!4?_#18!82?@#2AW#1G$#2!4?H#12G?O#4!85?C#14_#12_$#18!5?O#21_#11!86?@$#22!5?C-#0!7~}{woo_@BBFNN^!75~}w`FN!10~$#3!7?@???@#6O#17A#13?C#9G#11?O#9!76?@#4@?G#2_$#7!8?@@AEK[Woo_#15_#5!77?A#12C#6_#13O$#19!8?A#5A@???_G?O#17!78?C#19A#18O$#1!9?C???_#21!83?G$#18!10?C?A!6?_#22!77?O$#20!10?G#21G??C$#16!12?@-#0!14~}}{wo_??@@BBFNN^!68~}{o`F^!6~$#20!14?@#18@#2A???O!8?_#1!68?@#4@AO#5_#22_$#7!16?@@BFM]{{woo__#6!70?A@C#9O$#15!17?A??@#4_??C#19C#21G#11?O#2!71?C#18G#16G$#9!17?C#5C!6?G#19!74?G#20A$#3!18?G!4?A$#12!19?G??A!4?O$#1!19?O#16_#8@-#0!6~@@??__ooo!13_!5?@BBFn!64~}w@Fn~~~$#12!6?GOgG!9?G??@#21!4?O!6?C#12G#3G#6!65?@?a#2O$#18!6?O???G!7?G#11@!4?O#2???O#20___???C?O#1!65?C??O$#16!6?A?@??O???OO#17?@#5?GG!7?OO??C#17__#14_#18!66?B#21GG$#3!6?_#7cCC!12EM!7NM][WWOO#12!67?C#8_$!6?C#6I#22O_O!5@??O#3?@!4?O#16??_#15?@#22?__#19!70?O$#2!8?A!8?G#6???@!4?O#10!5?@#1A$#20!9?@@!6?O#13???O#19OO!7?@#18A$#5!9?A#4?G??GGG$#14!9?O#21??GG#1??@@?OO-#0!7~{wo`BFNN!14^!69~NFbpx{}!5~$#12!7?@!4?G!6?___#4???_#9_#8_#3_#21!69?_oG?C?@$#14!7?A!4?_#9_#20O#16!83?OGC#10A#6A@$#5!8?ACG??O#9!86?OK#4?A$#7!8?@ACGO$#3!8?C#18@!6?___???_$#6!9?G#2AO??__!7?__$#17!10?O#4C$#16!11?_-#0!22~!8}!4{wwwxxx`!6@!8B!4FNNN^!28~^NFbpx{}!11~$#20!22?@#1@!6?A#18?A#20@@#4A??C!8?C!8?G#8G#1G#13??O#9_#10!28?_#14O#6_OG#9C$#19!24?@#3@#6@!4?@!4?C?A#3AA#7K{!8w!7o!4_#18!30?_#1GC#4CAB@$#9!27?@???A!5?C#5??CO?CC!8?G!4?O#2!34?OG#20A$#2!28?@!5?A!4?CG_!4?C!8?G!4?O$#5!29?@#12@??A#14C#16@@#8A#17??O??A#1A#12C!8?G!4?O$#22!32?@#11??C#21A#19!4?AA#14??A#20A#9?C#6CCC#3C#19C#22C$#15!51?GG-#0!41~}{o_#17_#5!16?@?GO#2_#1!18?_???A#6CA#8@$#1!41?@#5@CGO_#1!16?@#0@F^!18~^NFbpw{}!17~$#4!42?A#7BFN^!15~}{o_#12!20?_???A@$#19!43?G#3O#12!18?A#16A#19G#17!20?O#19gC#16?@$#21!64?C#18!22?O#2GC$#3!88?OG-#0!47~}}{{{wwooo___!8?@BN^!7~^NFbpw{}!23~$#9!47?@!8?G#22O???_#23_#12_!4?C#15O_#6_!8?OGC#11A#5?@#13@$#5!48?@??AA??C#17??O#6O#3!7?@??O!8?_#12_???A$#15!49?@!8?G#5!8?A#1A#21G#2!11?OG#18C$#19!49?A#7@@@BBBFFFNN^^^~~~{w_#20!11?_#1OGDA$#2!50?A!6?G??O$#3!52?C??G$#4!53?C#16G!5?_!8?C$#18!54?C-#0!65~}}}{{wwwoprrp{}!30~$#6!65?@??A??C??G?GA@$#12!66?@??A!9?@$#5!67?@??A??CC#9GC#16G$#15!68?@??A?A#3A#4C#21?C$#7!69?@@@A#20@$#14!70?C??G$#2!72?C!5?A$#18!72?@-#0!110~-!110B

\e\'

 ReGIS

Il existe également la technologie ReGIS, pour afficher des images vectorielles, c'est une sorte d'ancêtre du postscript, juste antérieur de quelques années, 1981 contre 1982-1984 :

https://en.wikipedia.org/wiki/ReGIS

Idem que pour sixel, il faudra configurer xterm pour gérer le format ReGIS :

./configure --enable-regis-graphics
Note : il semble que les macro (macrographs) ne s'affichent pas dans xterm

Le projet ReGIS pour arduino est une interface qui délègue la génération des vecteurs à l'arduino. C'est également un convertisseur d'une syntaxe plus lisible vers la syntaxe ReGIS

https://github.com/feilipu/ReGIS

https://feilipu.me/2022/09/28/regis-serial-graphics-for-arduino-rc2014/

Cela s'interface, comme expliqué dans le projet github, avec un adaptateur série comme picocom :

xterm +u8 -geometry 102x35 -ti 340 -tn 340 -e picocom -b 115200 -p 2 -f h /dev/ttyUSB0

Comme idées possibles d'utilisation, on pourrait voir un capteur arduino qui s'affiche directement dans xterm sur un raspberry connecté, évitant de passer par une interface web.

Mais on peut également afficher des images au format ReGIS directement depuis xterm, en le démarrant avec

xterm +u8 -geometry 102x35 -ti 340 -tn 340

Exemples ReGIS :

echo -e '\e

P0p
S(E)(C1)
P[100,440]
V(B),[+100,+0],[+0,-10],[-100,+0],(E)
P[500,300],F(C[+100])

\e\'
echo -e '\e

<code>

\e\'
echo -e '\e

P1pS(E)W(I(M))

P[193,227]V[][260,160]V[][223,096]V[][211,021]V[][150,050]V[][112,009]V[][103,049]V[][080,053]V[][073,059]V[][067,073]V[][018,077]V[][008,107]V[][055,148]V[][018,152]V[][013,159]V[][025,176]V[][147,185]V[][193,227]
P[103,049]V[][181,065]V[][129,066]V[][073,059]
P[067,073]V[][108,082]V[][018,077]
P[008,107]V[][090,158]V[][018,152]
P[090,158]V[][055,148]P[095,180]V[][117,209]V[][193,227]

\e\'

 Autres

Dans un autre genre, CFR est amusant. Dessiner avec 5 instructions seulement :

CFR

https://susam.net/cfr.html#5

C[RRR][[[FFFFFF]]][RRRRR][CCC][[FF]]R[[FF]]R[[[FF]]]R[[F]]FRR[[FF]]FF[[R][R][R]FF[[FF]]RRF[[F]]R[[FFFF]]R[[FF]]R[FF]FFRRCCC[RR][[C]C]CFF[RRR][[FFF]]FFF[RRR][[[FFFFFFF]]][RRR]CCCC[[[FF]F]]FFFF[RFFFFFF][[[F]]]R[FF]FR[[[FFF]]]RFFFFRRFFFFRR[[R]RRFFFFRRFFFFRR]

https://susam.net/cfr.html#C3B12F2RFEFE3F6R2E2B3F3E3R2B2FE2BR3CEC2E6

https://susam.net/cfr.html#B3F4RF4BF3BR2CBF2C2R2F2E2R4F5E4

Dans le mĂŞme style il y a le bytebeat :

https://dollchan.net/bytebeat/#v3b64q1ZKzk9JVbJSKtHSKFEzNDO2MLE3tzLV1NIw1dUwViuxs7PQ1LSzAzJ1gWygEhMDSzN7IytDM03NGogIRBNUxtjKxMpYU6kWAA

Des mélodies assez complexes à partir de formules simples…