PixelFonts is een familie van lettertypen die specifiek zijn ontworpen voor kleine displays met een lage resolutie. De fonts zijn slank en gecondenseerd om zoveel mogelijk tekst op het scherm te passen zonder in te leveren op visuele aantrekkingskracht.
Belangrijkste kenmerken:
- Compatibiliteit: De lettertypen werken met de
AdafruitGFX en u8g2 bibliotheken. Voor uitgebreide Latijnse tekens is bij AdafruitGFX een specifieke UTF-8 fork nodig.
- Variaties: Er is een uitgebreid aanbod aan formaten, variërend in hoogte (5px tot 21px) en dikte (
thin, semibold, bold). Daarnaast zijn er 3D-versies met outlines en schaduwen beschikbaar.
- Taalondersteuning: Ondersteuning voor diverse talen zoals Engels, Spaans, Frans, Italiaans en Tsjechisch.
- Flexibiliteit: De lettertypen zijn ook beschikbaar als BDF-bestanden voor gebruik in externe tools. Bovendien kunnen ze via software worden opgeschaald voor een retro arcade-stijl.
- AI-toepassing: AI kan worden ingezet voor het opschalen van de fonts of het genereren van nieuwe bitmap-formaten vanuit de meegeleverde
.txt glyph-gegevens.
PixelFonts: Pixel-perfecte lettertypen voor de kleinste displays
Daarnaast kan AI worden gebruikt om de lettertypen op te schalen, spaties tussen pixels toe te voegen, pixels groter te maken of af te ronden. Dit maakt het een uitstekende methode om een 'faux-low-res' display of een retro arcade-stijl te creëren.
Taalondersteuning
De volgende talen worden ondersteund: Engels, Spaans, Frans, Italiaans, Tsjechisch en meer.
- Opmerking 1: Gekleurde tekens (accenten) zijn alleen beschikbaar voor kleine letters; hoofdletters met accenten zijn niet inbegrepen, omdat dit aanpassingen van de letters zou vereisen.
- Opmerking 2: De Tsjechische speciale tekens zijn handmatig ontworpen. Andere uitgebreide Latijnse glyphs zijn door AI gegenereerd; pull requests (PR's) met correcties van native speakers zijn daarom welkom.
Gebruik
AdafruitGFX
Voor elk lettertype zijn er twee opties: een Engelse versie, die werkt met de standaard AdafruitGFX-bibliotheek, en een 'Extended Latin'-versie, waarvoor een UTF-8 fork van AdafruitGFX is vereist.
Het gebruik van de Extended Latin-versie met de standaardbibliotheek werkt nog steeds voor Engelse tekens, maar verbruikt door de extra data meer geheugen. Daarom wordt aangeraden de Engelse versie te gebruiken in combinatie met de standaardbibliotheek.
#include <Adafruit_GFX.h>
#include <PixelFonts.h> // Laadt alle lettertypen; ongebruikte varianten nemen geen flash-geheugen in beslag
// Dit is vereist om Extended Latin te laten werken (gebruik de geforkte Adafruit-GFX):
// https://github.com/DoomHammer/Adafruit-GFX-Library/tree/enable-utf-8
// Verwijder deze regel bij gebruik van de standaard AdafruitGFX en Engelse lettertypen
display.utf8(true);
display.setFont(&pixelfont_extended_latin_13x7_semibold);
display.setTextColor(BLACK);
display.setCursor(10, 30);
display.print("Temperature 23.5");
Opschalen voor een low-res look: De functie setTextSize() tekent elke pixel van het lettertype als een vierkant blok. Hierdoor verandert een klein lettertype in een grote, blokkerige pixeltekst zonder extra flash-geheugen te verbruiken:
display.setFont(&pixelfont_9x5_thin);
display.setTextSize(3); // Elke letterpixel wordt een blok van 3x3: hoofdletters worden 27 px hoog
display.setCursor(0, 40);
display.print("23.5");
setTextSize(x, y) schaalt de breedte en hoogte afzonderlijk; de regelhoogte schaalt mee.
u8g2
Dezelfde lettertypen zijn beschikbaar in u8g2-formaat; deze zijn herkenbaar aan de toevoeging _u8g2 aan de naam. Zowel de Engelse als de Extended Latin-versies kunnen zonder beperkingen worden gebruikt.
#include <U8g2lib.h>
#include <PixelFontsU8g2.h> // Laadt alle u8g2-lettertypen; ongebruikte varianten nemen geen flash-geheugen in beslag
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);
u8g2.begin();
u8g2.setFontMode(1);
u8g2.setFont(pixelfont_13x7_semibold_u8g2);
u8g2.drawStr(0, 20, "Temperature 23.5");
u8g2.setFont(pixelfont_extended_latin_13x7_semibold_u8g2);
u8g2.drawUTF8(0, 20 + PIXELFONT_EXTENDED_LATIN_13X7_SEMIBOLD_U8G2_LINE_HEIGHT, "Příliš žluťoučký kůň");
u8g2.sendBuffer();
Elk u8g2-lettertype wordt geleverd met een bijbehorende regelhoogte, bijvoorbeeld PIXELFONT13X7SEMIBOLDU8G2LINE_HEIGHT.
BDF
In de map bdf/ bevindt zich elk lettertype als een BDF-bestand (Unicode-gecodeerd). Deze kunnen worden gebruikt met bdfconv van u8g2, FontForge, de LVGL-fontconverter en andere tools. De regelhoogte wordt bepaald door FONTASCENT + FONTDESCENT.
Overzicht van lettertypen
De naamgeving volgt het patroon: pixelfont[3d | 3dcondensed][extendedlatin]ROWSxCOLS_WEIGHT.
- ROWSxCOLS: De grootte van het letterraster in pixels (hoogte van hoofdletter x breedte van hoofdletter).
- WEIGHT: De lijndikte:
thin = 1px
semibold = 2px
bold = 3px
- _3d: Versie met outline en schaduw. Deze is 3 px hoger en heeft 1 px ruimte tussen karakters en regels.
- 3dcondensed: Dezelfde 3D-versie, maar zonder ruimte tussen karakters en regels.
- extendedlatin: Voegt kleine letters met accenten en interpunctie toe.
Standaard lettertypen
| Hoogte | Dikte | Engels | Extended Latin |
| 5 px | 1px | pixelfont5x5thin | - |
| 7 px | 1px | pixelfont7x5thin | pixelfontextendedlatin7x5thin |
| 9 px | 1px | pixelfont9x5thin | pixelfontextendedlatin9x5thin |
| 11 px | 1px | pixelfont11x5thin | pixelfontextendedlatin11x5thin |
| 13 px | 1px | pixelfont13x5thin | pixelfontextendedlatin13x5thin |
| 13 px | 1px | pixelfont13x7thin | pixelfontextendedlatin13x7thin |
| 13 px | 2px | pixelfont13x7semibold | pixelfontextendedlatin13x7semibold |
| 15 px | 1px | pixelfont15x5thin | pixelfontextendedlatin15x5thin |
| 15 px | 2px | pixelfont15x5semibold | pixelfontextendedlatin15x5semibold |
| 15 px | 1px | pixelfont15x7thin | pixelfontextendedlatin15x7thin |
| 15 px | 2px | pixelfont15x7semibold | pixelfontextendedlatin15x7semibold |
| 17 px | 1px | pixelfont17x5thin | pixelfontextendedlatin17x5thin |
| 17 px | 2px | pixelfont17x5semibold | pixelfontextendedlatin17x5semibold |
| 17 px | 1px | pixelfont17x7thin | pixelfontextendedlatin17x7thin |
| 17 px | 2px | pixelfont17x7semibold | pixelfontextendedlatin17x7semibold |
| 17 px | 3px | pixelfont17x7bold | pixelfontextendedlatin17x7bold |
| 21 px | 1px | pixelfont21x11thin | pixelfontextendedlatin21x11thin |
| 21 px | 3px | pixelfont21x11bold | pixelfontextendedlatin21x11bold |
3D lettertypen
| Hoogte | Dikte | Engels | Extended Latin |
| 8 px | 1px | pixelfont3d5x5_thin | - |
| 8 px | 1px | pixelfont3dcondensed5x5thin | - |
| 10 px | 1px | pixelfont3d7x5_thin | pixelfont3dextendedlatin7x5_thin |
| 10 px | 1px | pixelfont3dcondensed7x5thin | pixelfont3dcondensedextendedlatin7x5thin |
| 12 px | 1px | pixelfont3d9x5_thin | pixelfont3dextendedlatin9x5_thin |
| 12 px | 1px | pixelfont3dcondensed9x5thin | pixelfont3dcondensedextendedlatin9x5thin |
| 14 px | 1px | pixelfont3d11x5_thin | pixelfont3dextendedlatin11x5_thin |
| 14 px | 1px | pixelfont3dcondensed11x5thin | pixelfont3dcondensedextendedlatin11x5thin |
| 16 px | 1px | pixelfont3d13x5_thin | pixelfont3dextendedlatin13x5_thin |
| 16 px | 1px | pixelfont3dcondensed13x5thin | pixelfont3dcondensedextendedlatin13x5thin |
| 16 px | 1px | pixelfont3d13x7_thin | pixelfont3dextendedlatin13x7_thin |
| 16 px | 1px | pixelfont3dcondensed13x7thin | pixelfont3dcondensedextendedlatin13x7thin |
| 16 px | 2px | pixelfont3d13x7_semibold | pixelfont3dextendedlatin13x7_semibold |
| 16 px | 2px | pixelfont3dcondensed13x7semibold | pixelfont3dcondensedextendedlatin13x7semibold |
| 18 px | 1px | pixelfont3d15x5_thin | pixelfont3dextendedlatin15x5_thin |
| 18 px | 1px | pixelfont3dcondensed15x5thin | pixelfont3dcondensedextendedlatin15x5thin |
| 18 px | 2px | pixelfont3d15x5_semibold | pixelfont3dextendedlatin15x5_semibold |
| 18 px | 2px | pixelfont3dcondensed15x5semibold | pixelfont3dcondensedextendedlatin15x5semibold |
| 18 px | 1px | pixelfont3d15x7_thin | pixelfont3dextendedlatin15x7_thin |
| 18 px | 1px | pixelfont3dcondensed15x7thin | pixelfont3dcondensedextendedlatin15x7thin |
| 18 px | 2px | pixelfont3d15x7_semibold | pixelfont3dextendedlatin15x7_semibold |
| 18 px | 2px | pixelfont3dcondensed15x7semibold | pixelfont3dcondensedextendedlatin15x7semibold |
| 20 px | 1px | pixelfont3d17x5_thin | pixelfont3dextendedlatin17x5_thin |
| 20 px | 1px | pixelfont3dcondensed17x5thin | pixelfont3dcondensedextendedlatin17x5thin |
| 20 px | 2px | pixelfont3d17x5_semibold | pixelfont3dextendedlatin17x5_semibold |
| 20 px | 2px | pixelfont3dcondensed17x5semibold | pixelfont3dcondensedextendedlatin17x5semibold |
| 20 px | 1px | pixelfont3d17x7_thin | pixelfont3dextendedlatin17x7_thin |
| 20 px | 1px | pixelfont3dcondensed17x7thin | pixelfont3dcondensedextendedlatin17x7thin |
| 20 px | 2px | pixelfont3d17x7_semibold | pixelfont3dextendedlatin17x7_semibold |
| 20 px | 2px | pixelfont3dcondensed17x7semibold | pixelfont3dcondensedextendedlatin17x7semibold |
| 20 px | 3px | pixelfont3d17x7_bold | pixelfont3dextendedlatin17x7_bold |
| 20 px | 3px | pixelfont3dcondensed17x7bold | pixelfont3dcondensedextendedlatin17x7bold |
| 24 px | 1px | pixelfont3d21x11_thin | pixelfont3dextendedlatin21x11_thin |
| 24 px | 1px | pixelfont3dcondensed21x11thin | pixelfont3dcondensedextendedlatin21x11thin |
| 24 px | 3px | pixelfont3d21x11_bold | pixelfont3dextendedlatin21x11_bold |
| 24 px | 3px | pixelfont3dcondensed21x11bold | pixelfont3dcondensedextendedlatin21x11bold |
Aanvullende opmerkingen
De glyph-gegevens zijn in een eenvoudig .txt-formaat inbegrepen, zodat AI kan worden gebruikt om elk gewenst bitmap- of lettertypeformaat te genereren.
PixelFonts: Pixel-perfecte lettertypen voor de kleinste displays
Daarnaast kan AI worden gebruikt om de lettertypen op te schalen, spaties tussen pixels toe te voegen, pixels groter te maken of af te ronden. Dit maakt het een uitstekende methode om een 'faux-low-res' display of een retro arcade-stijl te creëren.
Taalondersteuning
De volgende talen worden ondersteund: Engels, Spaans, Frans, Italiaans, Tsjechisch en meer.
- Opmerking 1: Gekleurde tekens (accenten) zijn alleen beschikbaar voor kleine letters; hoofdletters met accenten zijn niet inbegrepen, omdat dit aanpassingen van de letters zou vereisen.
- Opmerking 2: De Tsjechische speciale tekens zijn handmatig ontworpen. Andere uitgebreide Latijnse glyphs zijn door AI gegenereerd; pull requests (PR's) met correcties van native speakers zijn daarom welkom.
Gebruik
AdafruitGFX
Voor elk lettertype zijn er twee opties: een Engelse versie, die werkt met de standaard AdafruitGFX-bibliotheek, en een 'Extended Latin'-versie, waarvoor een UTF-8 fork van AdafruitGFX is vereist.
Het gebruik van de Extended Latin-versie met de standaardbibliotheek werkt nog steeds voor Engelse tekens, maar verbruikt door de extra data meer geheugen. Daarom wordt aangeraden de Engelse versie te gebruiken in combinatie met de standaardbibliotheek.
#include <Adafruit_GFX.h>
#include <PixelFonts.h> // Laadt alle lettertypen; ongebruikte varianten nemen geen flash-geheugen in beslag
// Dit is vereist om Extended Latin te laten werken (gebruik de geforkte Adafruit-GFX):
// https://github.com/DoomHammer/Adafruit-GFX-Library/tree/enable-utf-8
// Verwijder deze regel bij gebruik van de standaard AdafruitGFX en Engelse lettertypen
display.utf8(true);
display.setFont(&pixelfont_extended_latin_13x7_semibold);
display.setTextColor(BLACK);
display.setCursor(10, 30);
display.print("Temperature 23.5");
Opschalen voor een low-res look: De functie setTextSize() tekent elke pixel van het lettertype als een vierkant blok. Hierdoor verandert een klein lettertype in een grote, blokkerige pixeltekst zonder extra flash-geheugen te verbruiken:
display.setFont(&pixelfont_9x5_thin);
display.setTextSize(3); // Elke letterpixel wordt een blok van 3x3: hoofdletters worden 27 px hoog
display.setCursor(0, 40);
display.print("23.5");
setTextSize(x, y) schaalt de breedte en hoogte afzonderlijk; de regelhoogte schaalt mee.
u8g2
Dezelfde lettertypen zijn beschikbaar in u8g2-formaat; deze zijn herkenbaar aan de toevoeging _u8g2 aan de naam. Zowel de Engelse als de Extended Latin-versies kunnen zonder beperkingen worden gebruikt.
#include <U8g2lib.h>
#include <PixelFontsU8g2.h> // Laadt alle u8g2-lettertypen; ongebruikte varianten nemen geen flash-geheugen in beslag
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);
u8g2.begin();
u8g2.setFontMode(1);
u8g2.setFont(pixelfont_13x7_semibold_u8g2);
u8g2.drawStr(0, 20, "Temperature 23.5");
u8g2.setFont(pixelfont_extended_latin_13x7_semibold_u8g2);
u8g2.drawUTF8(0, 20 + PIXELFONT_EXTENDED_LATIN_13X7_SEMIBOLD_U8G2_LINE_HEIGHT, "Příliš žluťoučký kůň");
u8g2.sendBuffer();
Elk u8g2-lettertype wordt geleverd met een bijbehorende regelhoogte, bijvoorbeeld PIXELFONT13X7SEMIBOLDU8G2LINE_HEIGHT.
BDF
In de map bdf/ bevindt zich elk lettertype als een BDF-bestand (Unicode-gecodeerd). Deze kunnen worden gebruikt met bdfconv van u8g2, FontForge, de LVGL-fontconverter en andere tools. De regelhoogte wordt bepaald door FONTASCENT + FONTDESCENT.
Overzicht van lettertypen
De naamgeving volgt het patroon: pixelfont[3d | 3dcondensed][extendedlatin]ROWSxCOLS_WEIGHT.
- ROWSxCOLS: De grootte van het letterraster in pixels (hoogte van hoofdletter x breedte van hoofdletter).
- WEIGHT: De lijndikte:
thin = 1px
semibold = 2px
bold = 3px
- _3d: Versie met outline en schaduw. Deze is 3 px hoger en heeft 1 px ruimte tussen karakters en regels.
- 3dcondensed: Dezelfde 3D-versie, maar zonder ruimte tussen karakters en regels.
- extendedlatin: Voegt kleine letters met accenten en interpunctie toe.
Standaard lettertypen
| Hoogte | Dikte | Engels | Extended Latin |
| 5 px | 1px | pixelfont5x5thin | - |
| 7 px | 1px | pixelfont7x5thin | pixelfontextendedlatin7x5thin |
| 9 px | 1px | pixelfont9x5thin | pixelfontextendedlatin9x5thin |
| 11 px | 1px | pixelfont11x5thin | pixelfontextendedlatin11x5thin |
| 13 px | 1px | pixelfont13x5thin | pixelfontextendedlatin13x5thin |
| 13 px | 1px | pixelfont13x7thin | pixelfontextendedlatin13x7thin |
| 13 px | 2px | pixelfont13x7semibold | pixelfontextendedlatin13x7semibold |
| 15 px | 1px | pixelfont15x5thin | pixelfontextendedlatin15x5thin |
| 15 px | 2px | pixelfont15x5semibold | pixelfontextendedlatin15x5semibold |
| 15 px | 1px | pixelfont15x7thin | pixelfontextendedlatin15x7thin |
| 15 px | 2px | pixelfont15x7semibold | pixelfontextendedlatin15x7semibold |
| 17 px | 1px | pixelfont17x5thin | pixelfontextendedlatin17x5thin |
| 17 px | 2px | pixelfont17x5semibold | pixelfontextendedlatin17x5semibold |
| 17 px | 1px | pixelfont17x7thin | pixelfontextendedlatin17x7thin |
| 17 px | 2px | pixelfont17x7semibold | pixelfontextendedlatin17x7semibold |
| 17 px | 3px | pixelfont17x7bold | pixelfontextendedlatin17x7bold |
| 21 px | 1px | pixelfont21x11thin | pixelfontextendedlatin21x11thin |
| 21 px | 3px | pixelfont21x11bold | pixelfontextendedlatin21x11bold |
3D lettertypen
| Hoogte | Dikte | Engels | Extended Latin |
| 8 px | 1px | pixelfont3d5x5_thin | - |
| 8 px | 1px | pixelfont3dcondensed5x5thin | - |
| 10 px | 1px | pixelfont3d7x5_thin | pixelfont3dextendedlatin7x5_thin |
| 10 px | 1px | pixelfont3dcondensed7x5thin | pixelfont3dcondensedextendedlatin7x5thin |
| 12 px | 1px | pixelfont3d9x5_thin | pixelfont3dextendedlatin9x5_thin |
| 12 px | 1px | pixelfont3dcondensed9x5thin | pixelfont3dcondensedextendedlatin9x5thin |
| 14 px | 1px | pixelfont3d11x5_thin | pixelfont3dextendedlatin11x5_thin |
| 14 px | 1px | pixelfont3dcondensed11x5thin | pixelfont3dcondensedextendedlatin11x5thin |
| 16 px | 1px | pixelfont3d13x5_thin | pixelfont3dextendedlatin13x5_thin |
| 16 px | 1px | pixelfont3dcondensed13x5thin | pixelfont3dcondensedextendedlatin13x5thin |
| 16 px | 1px | pixelfont3d13x7_thin | pixelfont3dextendedlatin13x7_thin |
| 16 px | 1px | pixelfont3dcondensed13x7thin | pixelfont3dcondensedextendedlatin13x7thin |
| 16 px | 2px | pixelfont3d13x7_semibold | pixelfont3dextendedlatin13x7_semibold |
| 16 px | 2px | pixelfont3dcondensed13x7semibold | pixelfont3dcondensedextendedlatin13x7semibold |
| 18 px | 1px | pixelfont3d15x5_thin | pixelfont3dextendedlatin15x5_thin |
| 18 px | 1px | pixelfont3dcondensed15x5thin | pixelfont3dcondensedextendedlatin15x5thin |
| 18 px | 2px | pixelfont3d15x5_semibold | pixelfont3dextendedlatin15x5_semibold |
| 18 px | 2px | pixelfont3dcondensed15x5semibold | pixelfont3dcondensedextendedlatin15x5semibold |
| 18 px | 1px | pixelfont3d15x7_thin | pixelfont3dextendedlatin15x7_thin |
| 18 px | 1px | pixelfont3dcondensed15x7thin | pixelfont3dcondensedextendedlatin15x7thin |
| 18 px | 2px | pixelfont3d15x7_semibold | pixelfont3dextendedlatin15x7_semibold |
| 18 px | 2px | pixelfont3dcondensed15x7semibold | pixelfont3dcondensedextendedlatin15x7semibold |
| 20 px | 1px | pixelfont3d17x5_thin | pixelfont3dextendedlatin17x5_thin |
| 20 px | 1px | pixelfont3dcondensed17x5thin | pixelfont3dcondensedextendedlatin17x5thin |
| 20 px | 2px | pixelfont3d17x5_semibold | pixelfont3dextendedlatin17x5_semibold |
| 20 px | 2px | pixelfont3dcondensed17x5semibold | pixelfont3dcondensedextendedlatin17x5semibold |
| 20 px | 1px | pixelfont3d17x7_thin | pixelfont3dextendedlatin17x7_thin |
| 20 px | 1px | pixelfont3dcondensed17x7thin | pixelfont3dcondensedextendedlatin17x7thin |
| 20 px | 2px | pixelfont3d17x7_semibold | pixelfont3dextendedlatin17x7_semibold |
| 20 px | 2px | pixelfont3dcondensed17x7semibold | pixelfont3dcondensedextendedlatin17x7semibold |
| 20 px | 3px | pixelfont3d17x7_bold | pixelfont3dextendedlatin17x7_bold |
| 20 px | 3px | pixelfont3dcondensed17x7bold | pixelfont3dcondensedextendedlatin17x7bold |
| 24 px | 1px | pixelfont3d21x11_thin | pixelfont3dextendedlatin21x11_thin |
| 24 px | 1px | pixelfont3dcondensed21x11thin | pixelfont3dcondensedextendedlatin21x11thin |
| 24 px | 3px | pixelfont3d21x11_bold | pixelfont3dextendedlatin21x11_bold |
| 24 px | 3px | pixelfont3dcondensed21x11bold | pixelfont3dcondensedextendedlatin21x11bold |
Aanvullende opmerkingen
De glyph-gegevens zijn in een eenvoudig .txt-formaat inbegrepen, zodat AI kan worden gebruikt om elk gewenst bitmap- of lettertypeformaat te genereren.