/fontbm

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

Primary LanguageC++MIT LicenseMIT

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).
--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
--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 Moddable-OpenSource/moddable#325 (comment))

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

Contributors

License

MIT License

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