Browser Based BDF to U8g2 font converter

yes this site made with AI, but source is compiled from U8g2 repo




Auto-filled from BDF metadata when you select a file.


Main Options -v Print log messages
-b Font build mode, 0: proportional, 1: common height, 2: monospace, 3: multiple of 8
-f Font format, 0: ucglib font, 1: u8g2 font, 2: u8g2 uncompressed 8x8 font (enforces -b 3)
-m 'map' Unicode ASCII mapping
-M 'mapfile' Read Unicode ASCII mapping from file 'mapname'
-o C output font file
-k C output file with kerning information
-p <%> Minimum distance for kerning in percent of the global char width (lower values: Smaller gaps, more data)
-x X-Offset for 8x8 font sub-glyph extraction (requires -f 2, default 0)
-y Y-Offset for 8x8 font sub-glyph extraction (requires -f 2, default 0)
-th Horizontal size of the 8x8 glyphs (requires -f 2, default 1)
-tv Vertical size of the 8x8 glyphs (requires -f 2, default 1)
-n C indentifier (font name)
-d Overview picture: Enable generation of bdf.tga and assign BDF font for description
-l Overview picture: Set left margin
-g Overview picture: Set glyphs per line (default: 16)
-a Overview picture: Additional font information (background, orange&blue dot)
-t Overview picture: Test string (Woven silk pyjamas exchanged for blue quartz.)
-r Runtime test
Build Modes build modes:
-b 0: Most compact, glyph bitmap is minimal
-b 1: Like -b 0, but glyph bitmap is extended to the height of the largest glyph within the selected glyph list.
Also the width of the gylphs is extended to cover the delta x advance.
-b 2: Like -b 1, but glyph width is set to the width of the largest glyph within the selected gylph list.
-b 3: Like -b 2, but width and height are forced to be a multiple of 8.
Character Mapping map := { "," }
mapcmd := | | |
default := "*"
maprange := [ ">" ] Move specified glyph to target code
exclude := "~"
exclude-kerning:= "x"
range := [ "-" ] Select glyphs within specified range
addexpr := [ "+" ]
mulexpr := [ "*" ]
num := |
hexnum := "$" { }
decnum := { }
decdigit := "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
hexdigit := "a" | "b" | "c" | "d" | "e" | "f" | "A" | "B" | "C" | "D" | "E" | "F" |
{ } zero, one ore more, [ ] zero or once, | alternative
example:
-m '32-255' select gylphs from encoding 32 to 255
-m '32-255,~64' select gylphs from encoding 32 to 255, exclude '@'
-m '32,48-57' select space, '1', '2', ... '9'

Output C Code: