La biblitothèque U8g2 a quelques inconvénients
- elle dispose d'une gamme limitée de polices avec caractères accentués
- il n'est pas possible de visualiser la forme de la police lors du choix
Ma méthode présentée ici permet :
- de choisir visuellement une police quelconque de type .ttf parmi des milliers
- d'y accentuer tous les caractères accentuables souhaités
- de les transformer en un font Adafruit_GFX_Library
1ere étape :
-
Choisir visuellement une police .TTF parmi les 1000 ici : https://www.1001freefonts.com/ et la télécharger --> fichier .zip
par exemple la police Coneria Script:
-
Choisir le fichier Coneria-Script.zip
- Y extraire le fichier Demo_ConeriaScript.tff
2eme étape :
convertir cette police .ttf en format.h sur ce site : truetype2gfx - Converting fonts from TrueType to Adafruit GFX
Pour cela :
4) lancer ce logiciel en ligne : truetype2gfx - Converting fonts from TrueType to Adafruit GFX
- avec "parcourir" puis "upload" charger Demo_ConeriaScript.tff
- choisir la hauteur de la police à créer .. "20" par exemple
- cliquer sur "Get GFX font file" .. un fichier Demo_ConeriaScript.h.html est créé
- supprimer l'extension.html
3eme étape :
Ajout des caractères accentués .. pour cela:
8) lancer le logiciel en ligne : https://tchapi.github.io/Adafruit-GFX-Font-Customiser/
- cliquez sur le fichier Demo_ConeriaSript.h et copiez/collez l'entièreté de son contenu dans la fenêtre de gauche
-
cliquez sur "extract" et descendez pour découvrir tous les caractères contenus dans la police originale
Nous devons maintenant créer le caractère accentué
Choisissons "é" par exemple : -
cliquez sur "+ Add new caracter" et tapez "é"
- vous avez interêt à ce niveau de faire une copie du caractère non accentué de "e" pour servir de guide pour créer "é"
en dernière position on découvre sa grille de construction
- Ici je vous laisse découvrir comment ajouter/supprimer des lignes et des colonnes ainsi que l'emplacement de sa partie inferieure .. (ce n'est pas évident car le logiciel n'est pas du tout ergonomique mais on doit arriver à ceci)
- cliquez sur "process and Create file"
La fenêtre de droite se remplit avec tous les caractères + le nouveau et son nombre headécimal correspondant
- copiez son contenu complet et le collez-le à la place du contenu du fichier Demo_ConeriaScript20Pt7b.h
- déplacer ce fichier .h dans Adafruit_GFX_Libraries/Fonts
C'est fini!
UTILISATION :
- ajoutez ces lignes indispensables dans le skech :
#include <Adafruit_GFX.h>
#include <Adafruit_GrayOLED.h>
#include <Adafruit_SPITFT.h>
#include <Adafruit_SPITFT_Macros.h>
#include <gfxfont.h>
- Puis dans Setup :
#include <Fonts/Demo_ConeriaScript20pt7b.h>
- Puis dans Loop:
ecranOLED.setFont(&Demo_ConeriaScript20pt7b);
4) et maintenant le plus important :
si vous devez envoyé sur l'écran "agé de" ... vous devrez écrire :
String s1 = "ag\xE9 de "; // xE9 est la valeur hexadécimale de "é"
String BUFFER = s1;
ecranOLED.setFont(&Demo_ConeriaScript20pt7b);
ecranOLED.DisplayCenter(BUFFER, 40); // 40 = distance par rapport au sommet
Résultat :