fontbm

BMFont compatible, cross-platform (Linux/macOS/Windows) command line bitmap font generator (FreeType2 based render).

fontbm

BMFont compatible, cross-platform (Linux/macOS/Windows) command line bitmap font generator (FreeType2 based render).

sample
sample

Status

Linux macOS Windows
Actions Status Actions Status Build status

Usage

Download compiled version (fontbm.zip for Windows, fontbm for Linux) from Releases. Run:

fontbm --font-file FreeSans.ttf --output myfont

It will produce myfont.fnt (file format) and myfont_0.png (how to render text).

Available options (bold options are required):

option default comment
–font-file path to ttf file, required
–output output files name without extension, required
–font-size 32 font size (it matches to BMFont size, when “Match char height” option in Font Settings dialog is ticked)
–chars 32-126 required characters, for example 32-64,92,120-126 (without spaces), default value is 32-126 if ‘chars-file’ option is not defined
–texture-size 32x32,64x32,64x64,128x64, 128x128,256x128,256x256, 512x256,512x512,1024x512, 1024x1024,2048x1024,2048x2048 comma separated list of allowed texture sizes (without spaces), the first suitable size will be used
–texture-crop-width crop unused parts of output textures (width)
–texture-crop-height crop unused parts of output textures (height)
–color 255,255,255 foreground RGB color, for example: 32,255,255 (without spaces)
–background-color background RGB color, for example: 0,0,128 (without spaces), transparent by default
–chars-file optional path to UTF-8 text file with additional required characters (will be combined with ‘chars’ option), can be set multiple times
–data-format txt output data file format: txt, xml, bin, json, cbor
–kerning-pairs disabled generate kerning pairs: disabled, basic, regular (tuned by hinter), extended (bigger output size, but more precise)
–padding-up 0 padding up
–padding-right 0 padding right
–padding-down 0 padding down
–padding-left 0 padding left
–spacing-vert 0 spacing vertical
–spacing-horiz 0 spacing horizontal
–monochrome disable anti-aliasing
–extra-info write extra information to data file
–max-texture-count maximum generated texture count (unlimited if not set)
–texture-name-suffix index_aligned texture name suffix: “index_aligned”, “index” or “none”

Building Linux

Dependencies:

Build:

cmake .  
make

Building Windows (using vcpkg)

Download and install vcpkg and CMake 3.10.2 (or above). Run:

vcpkg install freetype
cmake -G "Visual Studio 14 2015" -DCMAKE_TOOLCHAIN_FILE=<path to vcpkg dir>/scripts/buildsystems/vcpkg.cmake

Open .sln in Visual Studio 2015 and rebuild all.

Building Windows

Download and install CMake 3.0 (or above) and FreeType. Run:

cmake -G "Visual Studio 14 2015"

Open .sln file in Visual Studio 2015, configure paths to FreeType and rebuild all.

Building macOS

(thanx to andycarle https://github.com/Moddable-OpenSource/moddable/issues/325#issuecomment-769615337)

brew install freetype
git clone https://github.com/vladimirgamalyan/fontbm.git
cd fontbm
cmake .
make

Contributors

Special thanks

License

MIT License

The project also bundles third party software under its own licenses: