Police pixel 5x5 pour petits écrans
(maurycyz.com)- Une police monospacée ultra-compacte conçue pour faire tenir tous les caractères dans un carré de 5 pixels et permettre un rendu sûr sur une grille 6x6, pensée pour les petits écrans et les environnements à mémoire limitée
- La taille 5x5 résout les problèmes de représentation de
E,MetWqui restaient en 4x4, et dessine la plupart des minuscules avec 1 pixel de moins que les majuscules afin d'assurer une distinction visuelle - La police entière ne pèse que 350 octets, ce qui la rend bien adaptée aux microcontrôleurs 8 bits comme l'AVR128DA28, tout en offrant une excellente efficacité par pixel sur de petits écrans comme les OLED 160x128 ou 128x64
- Même comparée à une police vectorielle rendue à une taille similaire, le résultat reste meilleur avec cette police artisanale de 350 octets, malgré l'anticrénelage et un code bien plus volumineux ainsi que davantage de données de police
- Des essais ont aussi été menés avec des tailles encore plus petites, 3x5, 3x4, 3x3, 2x3, 3x2 et 2x2 : le 3x5 reste assez lisible, le 3x2 s'en sort mieux que le 2x3, tandis que le 2x2 s'effondre jusqu'à ressembler presque à un code secret
Police pixel 5x5
- Conçue pour que tous les caractères tiennent dans un carré de 5 pixels et puissent être rendus sans risque sur une grille 6x6
- Elle s'appuie sur le fichier 5x6
font-inline.hde lcamtuf, lui-même influencé par la police 8x8 du ZX Spectrum - Le 5x5 a été retenu comme la plus petite taille ne dégradant pas la lisibilité
- Elle s'appuie sur le fichier 5x6
- Le 2x2 est impossible, le 3x3 est techniquement faisable mais difficile à lire, et le 4x4 ne suffit pas pour dessiner correctement
E,MetW- En 5x5, ce problème est résolu
- Le 5x5 permet de dessiner la plupart des minuscules avec 1 pixel de moins que les majuscules, ce qui permet de les distinguer visuellement
- Des formats plus étroits comme le 4x5 et le 3x5 sont possibles, mais au prix de
M, du0pointé, ainsi que de la distinction entreU/V/Y - Uniformiser la largeur de tous les caractères simplifie la programmation
- À l'écran, la longueur d'une chaîne se calcule toujours comme 6 fois le nombre de caractères
- Pas besoin de craindre qu'un
"8978"soit plus long qu'un"1111"et fasse déborder la mise en page
- La taille totale de la police n'est que de 350 octets, ce qui convient bien aux microcontrôleurs 8 bits comme l'AVR128DA28
- Le texte indique que l'AVR128DA28 dispose de 16 kB de RAM
- Ces puces sont bon marché, sobres en énergie et robustes, mais disposent de peu de marge pour le traitement graphique
- Même un écran 384x288 représente environ 110 000 pixels, trop pour tenir dans la mémoire d'un AVR
- À la place, des écrans plus petits comme les OLED 160x128 ou 128x64 sont plus pratiques et moins coûteux
- Sur ce type d'écran, une police pixel optimisée dessinée à la main est avantageuse
- Une police vectorielle rendue à une taille comparable est aussi mise en comparaison
- Cette police vectorielle fait en réalité 6 pixels de haut, mais ses lettres sont plus étroites
- Malgré l'anticrénelage, plusieurs mégaoctets de code et 1 Mo de données de police, le résultat reste inférieur à celui de cette police artisanale de 350 octets
Écran réel et essais à des tailles encore plus petites
- Les pixels réels ne sont pas parfaitement carrés, donc l'affichage à l'écran ne correspond pas exactement au rendu montré en haut
- L'effet pseudo-ombre portée créé par les sous-pixels est jugé positif
- Cet effet disparaît sur les écrans noir et blanc, mais le rendu semble tout de même plus doux qu'attendu
- L'espace entre les pixels rend
eetgplus convaincants visuellement- À partir de cet effet, l'exploration de polices encore plus petites se poursuit
- Le 3x5 n'est pas la résolution minimale absolue sans compromis, mais reste franchement lisible
- À cette taille, il existe 32 768 glyphes, dont 27 904 sont distincts
M,WetQen pâtissent, maisOet0restent différenciables- Cela peut devenir une option lorsqu'il faut afficher 50 % de colonnes en plus
- En 3x4, cela reste lisible, mais avec des contraintes plus fortes
- Il y a 4 096 glyphes, dont 3 392 distincts
- À cette taille, on ne peut plus distinguer majuscules et minuscules, donc un seul style est choisi selon ce qui convient le mieux à l'espace disponible
- Le rendu des chiffres se dégrade aussi, mais cela reste exploitable
- En 3x3, la perte est la plus forte sur les chiffres
- Il y a 512 glyphes, dont 400 distincts
- Les lettres restent identifiables dans une certaine mesure sans doublons
- Une fois affichée sur le matériel réel, cette police s'améliore nettement
- Le 2x3 devient presque excessif
- Il y a 64 glyphes, dont 44 distincts
- La plupart des lettres sont difficiles à reconnaître et les doublons sont nombreux
- La dernière ligne est
"Hello World"
- Le 3x2, avec son ratio inversé, s'en sort bien mieux que le 2x3
- À cette taille aussi, il y a 64 glyphes, dont 44 distincts
- Les lettres qui demandent du détail horizontal, comme
M,W,N,Q,GetP, sont plus nombreuses que celles qui demandent surtout du détail vertical commeEetF, ce qui joue en sa faveur - La dernière ligne est
"you can probably read this"; en plissant les yeux ou en réduisant l'image, on peut la lire
- Le 2x2 n'est conservé que comme comparaison de complétude
- En théorie, il existe 16 images possibles en 2x2, mais l'une est vide et cinq autres ne sont que des copies obtenues en décalant d'autres glyphes, si bien qu'il n'en reste réellement que 10
- C'est suffisant pour représenter tous les chiffres, mais comme cela ne ressemble plus à leur forme d'origine, on est plus proche d'un code secret que d'une police
Aucun commentaire pour le moment.