Il s'agit de la bibliothèque graphique de base pour tous nos écrans, fournissant un ensemble commun de primitives graphiques (points, lignes, cercles, etc.). Il doit être associé à une bibliothèque spécifique au matériel pour chaque périphérique d'affichage que nous portons (pour gérer les fonctions de niveau inférieur).
Adafruit investit le temps et les ressources à la recherche de ce code open source, veuillez prendre en charge AdaFruit et le matériel open-source en achetant des produits auprès d'AdaFruit!
Écrit par Limor Fried / Ladyada pour Adafruit Industries. Licence BSD, vérifiez la licence.txt pour plus d'informations. Tout le texte ci-dessus doit être inclus dans toute redistribution.
Les versions récentes Arduino IDE incluent le gestionnaire de bibliothèque pour une installation facile. Sinon, pour télécharger, cliquez sur le bouton Télécharger Zip, non compresser et renommer le dossier non compressé adafruit_gfx. Confirmez que le dossier adafruit_gfx contient adafruit_gfx.cpp et adafruit_gfx.h. Placez le dossier de bibliothèque Adafruit_GFX votre dossier arduinosketchfolder / bibliothèques /. Vous devrez peut-être créer le sous-dossier des bibliothèques si c'est votre première bibliothèque. Redémarrez l'IDE.
Vous devrez également installer la dernière bibliothèque Adafruit Busio. Recherchez "Adafruit Busio" dans le gestionnaire de bibliothèque, ou installez à la main à partir de https://github.com/adafruit/adafruit_busio
Image2Code: Il s'agit d'un utilitaire Java GUI pratique pour convertir un fichier BMP en code de tableau nécessaire pour afficher l'image avec la fonction DrawBitmap. Consultez le code du référentiel GitHub d'Ehubin: https://github.com/ehubin/adafruit-gfx-library/tree/master/img2code
Fonction DrawxBitmap: vous pouvez utiliser l'éditeur de photos GIMP pour enregistrer un fichier .xbm et utiliser le tableau enregistré dans le fichier pour dessiner un bitmap avec la fonction DrawxBitmap. Voir la demande de traction ici pour plus de détails: # 31
Le dossier «Fonts» contient des polices bitmap pour une utilisation avec ADAFruit_gfx récent (1.1 et ultérieure). Pour utiliser une police dans votre croquis Arduino, #include le fichier .h correspondant et l'adresse passante de Gfxfont Struct à setFont (). Passez NULL pour revenir à la police bitmap à espace fixe «classique».
Le dossier «FontConvert» contient un outil de ligne de commande pour convertir les polices TTF au format d'en-tête ADAFRUST_GFX.
Vous pouvez également utiliser cet outil GFX FONT Customissant ( version Web ici ) pour personnaliser ou corriger la sortie de FontConvert, et créer des polices avec seulement un sous-ensemble de caractères pour optimiser la taille.
La directive principale est de maintenir la compatibilité en arrière avec les croquis Arduino existants - beaucoup sont hébergés ailleurs et ne suivent pas les changements ici, certains sont imprimés et ne peuvent jamais être modifiés! Cette "petite" bibliothèque s'est développée de manière organique au fil du temps et parfois nous nous peinons dans un coin de conception et devons simplement vivre avec ou ajouter progressivement des solutions de contournement.
Nous sommes reconnaissants pour les contributions de chacun, mais les demandes de traction pour les éléments suivants ne seront pas fusionnés:
Formats de police supplémentaires ou incompatibles (voir la directive principale ci-dessus). Il y a déjà deux formats et le code y est assez gonflé tel qu'il est. Cela crée également des responsabilités pour les outils et la documentation. Ce qu'il n'y a pas de parfait mais il fait le travail.
Formats bitmap supplémentaires ou incompatibles, pour des raisons similaires. Ça devient désordonné.
Ajout de la couleur d'arrière-plan aux polices personnalisées pour effacer le contenu de l'écran antérieur. Les seules méthodes acceptables consistent à effacer la zone avec un rect rempli, ou (pour éviter de scintiller) dessiner du texte dans un GFXCanvas1 et de copier pour dépister avec DrawBitmap () avec une couleur d'arrière-plan. C'est exprès et par conception. Nous en avons discuté. Les glyphes peuvent se chevaucher.
Défilement, que ce soit basé sur le matériel ou les logiciels. Ces implémentations ont tendance à s'appuyer sur des fonctionnalités spécifiques au matériel (pas universellement disponibles), à lire l'accès au FrameBuffer de l'écran (Ditto) et / ou à l'ajout de fonctions virtuelles dans GFX qui doivent être ajoutées dans chaque sous-classe, dont il y en a beaucoup. L'API GFX est en grande partie "définie" à ce stade et ce n'est qu'une limitation avec laquelle nous vivons maintenant.
Veuillez ne pas reformater le code pour reformater le code. Le grand "diffusions visuel" qui en résulte rend impossible de démêler les correctifs de bug réels à partir de lignes simplement réarrangées. Clang-Format sera l'arbitre final.
S'il vous plaît plus de PRS de dessin de pentagramme. Toutes les fonctions de dessin étrangement spécifiques peuvent aller dans votre propre code et ne sont pas utiles dans un contexte de bibliothèque.
Si vous devez avoir une de ces fonctionnalités, envisagez de créer une fourche avec les fonctionnalités requises pour votre projet ... il est facile de rester synchronisé avec le code en amont.