BMFont compatible, cross-platform command line bitmap font generator.
Linux | Windows | Quality |
---|---|---|
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.png (how to render text).
Available options (bold options are required):
option | default | comment |
---|---|---|
--font-file | path to ttf file, required (can be set several times for fallback fonts) | |
--output | output files name without extension, required | |
--font-size | 32 | font size |
--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 | 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 |
--chars-file | optional path to UTF-8 text file with additional required characters (will be combined with 'chars' option). | |
--data-format | txt | output data file format: txt, xml, bin, json |
--include-kerning-pairs | include kerning pairs to output file | |
--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 |
--texture-width | 256 | texture width |
--texture-height | 256 | texture height |
--max-texture-count | maximum generated texture count (unlimited if not defined) |
Dependencies:
- GCC-4.9
- CMake 3.0
- FreeType
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.
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.
The project also bundles third party software under its own licenses:
- lvandeve/lodepng - PNG encoder and decoder in C and C++ - zlib
- juj/RectangleBinPack - 2d rectangular bin packing - Public Domain
- leethomason/tinyxml2 - a simple, small, efficient, C++ XML parse - zlib
- UTF8-CPP - UTF-8 with C++ in a Portable Way - BSL-1.0
- catchorg/Catch2 - A modern, C++-native, header-only, test framework for unit-tests - BSL-1.0
- jarro2783/cxxopts - Lightweight C++ command line option parser - MIT
- nlohmann/json - JSON for Modern C++ - MIT