Bitmap Font Generator Github



  1. Online Bitmap Font Generator
  2. Bitmap Font Creator
  3. Bitmap Font Maker

Unscii is a set of bitmapped Unicode fonts based on classic system fonts.Unscii attempts to support character cell art well while also being suitablefor terminal and programming use.

SVG Bitmap Font Generator. Takes SVG fonts and converts them to the BitmapFont format used by Starling. Depends on the svg library for drawing shapes. Depends on OpenFL for rendering to bitmap. Join us on GitHub! Haxe is being developed on GitHub. GitHub project and example here. First ASCII character value is used only if a glyph identifier of length equal to 1 is not provided for each image. The value itself will be incremented by 1 for each glyph. First ASCII character (dec): x advance: Identifier: Draw mode: If your image looks all messed up on your display, like the image below, try. Bitmap Font Generator - Documentation. Back to main page. How to interpret the values in the font descriptor file. The image to the right illustrates some of the values found in the font descriptor file.The two dotted lines shows the lineHeight, i.e. How far the cursor should be moved vertically when moving to the next line. The base value is how far from the top of the cell height the base. EU4 Revolutionary Flag Generator. GitHub Gist: instantly share code, notes, and snippets. Select a font from among those installed on your system. This is also where you will set the size (in pixels) of the font, and can make it bold or italic. Create your character set You can 'paint-in' the characters you want to be included in your font. It is a good idea to select only the characters you really need to have in your bitmap font.

The two main variants are unscii-8 (8×8 pixels per glyph) and unscii-16(8×16). There are also several alternative styles for unscii-8, as well asan 8x16 'full' variant that incorporates missing Unicode glyphs fromFixedsys Excelsior and GNU Unifont. 'unscii-16-full' falls under GPL becauseof how Unifont is licensed; the other variants are in the Public Domain.

Unscii was created by Viznut.


Bitmap Font Generator Github

In 2020-03-10, the new Unicode version13.0 added 214 graphics characters for 'legacy computing' (including,among all, the missing PETSCII characters, and a majority of missingTeletext/Videotex characters). Most of these were already included in Unscii1.x, but now I have been able to give them proper Unicode mappings as well.This is the main reason for the Unscii 2.0 release.

Additionally, Unscii 2.0 fixes errors in some characters, legibility insome others and adds a bunch of new ones.

A test picture representing what is currently available in Unicode (feelfree to copy-paste it to your editor to see what it looks like in otherfonts):

Here are some conversions of legacy character set art into Unscii.

Amiga ansi: Divine Stylers by Hellbeard, as rendered with unscii-16.Source

PC ansi: Ansi Love by Rad Man, as rendered with unscii-16.Source

Commodore 64 petscii pictures as rendered with unscii-8, using the256-color xterm palette: I Has Floppy by Redcrab; The First Ball byDr.TerrorZ; Gary by Mermaid.

The source code package includes a generic bitmap-to-unscii converter. Here's an example of a conversion to unscii-8 using the 256-color xtermpalette, without dithering:


HEX and PCF are the only actual bitmapped formats here. HEX is the samesimple hexdump format as used by the Unifont project. TTF, OTF and WOFFare vectorized.

NOTE: Due to format limitations, the PCF versions lack all the charactersabove U+FFFF! However, all the new graphics characters are provided in thegood old PUA range as well. A mapping is in the file uns2uni.tr.

unscii-16: hexpcfttfotfwoff
unscii-16-full: hexpcfttfotfwoff
8x16. The latter is recommended for serious terminal use where a largeUnicode coverage is needed. (Warning: unscii16-full files range from 2to 12 megabytes in size; the others range from 40 to 400 kilobytes.)

unscii-8: hexpcfttfotfwoff

unscii-8-tall: hexpcfttfotfwoff
Double-height version of unscii8.

unscii-8-thin: hexpcfttfotfwoff
Based on system fonts with 1-pixel-wide lines.

unscii-8-alt: hexpcfttfotfwoff
Based on the more peculiar glyph forms of the reference fonts.

unscii-8-mcr: hexpcfttfotfwoff
Based on retrofuturistic MCR-like 8×8 fonts used in various games, demos,etc.

unscii-8-fantasy: hexpcfttfotfwoff
Based on fonts used in fantasy games.


Years ago, I noticed that Unicode had a bunch of pseudographic charactersthat could be used to enrichen Ansi art. However, no one seemed to use them.Even MUDs that used the 256-color Xterm palette and had no issues withUnicode still preferred to stick to the blocks available in the MS-DOScodepage 437.

After looking into existing Unicode fonts, the reason became obvious: theimplementation of non-CP437 graphics characters was shaky at best. UnicodeConsortium doesn't even care how pseudographics are implemented. It was akind of chicken-and-egg problem: No commonly accepted Unicode graphics font,no Unicode art scene; no art scene, no font support. The idea of anart-compatible Unicode font was born.

For Unscii, I studied a bunch of classic system fonts and how theircharacters had been used in Ascii and 'extended-Ascii' art.

8×8 system fonts can be divided in two major categories according totheir line thickness: 1-pixel and 2-pixel. 2-pixel-wide lines are used inmore prominent classic systems, so I chose it. Also, 2-pixel 8×8 systemfonts are surprisingly similar to one another which made it easier to chooseneutral shapes.

The basic look of the 8×8 variant of Unscii is based on the followingsystems:

  • Amiga (Topaz-8)
  • Amstrad CPC
  • Atari 8-bit (as in 800, XL etc.)
  • Atari Arcade (the iconic ROM font)
  • Atari 32-bit (as in ST etc.)
  • BBC Micro (graphics mode font)
  • Commodore 64
  • IBM PC (the 8×8 ROM font as in CGA, or VGA 80×50)

The 8×16 variant of Unscii has been mostly derived from the 8×8 variantby using a set of transformation principles. When in doubt, the followingfonts have been looked at for additional reference:

  • Windows Fixedsys 8×15 (and its modern successor Fixedsys Excelsior)
  • IBM PC VGA ROM font(s) (and their modern successor U_VGA)
  • X Window System fonts 8x13(B) and 9x15(B)
  • Classic Macintosh 12-point Monaco
  • Digital VT420 10×16 font (used in the 80×24 mode)
  • Modern monospaced vector fonts: DejaVu Sans Mono, Lucida Console,Inconsolata

In general, neutral shapes are preferred, unless art, legibility orreadability require otherwise: The characters /XY are connective because oftheir connetive use in ascii art, and the serifs in iIl are longer than inmost classic systems.

Whenever a 8×16 shape has not been defined, Unscii falls back toheight-doubled 8×8.

I also studied game fonts and thin-line system fonts. This resulted inthe variants unscii-8-thin, unscii-8-mcr and unscii-8-fantasy.

When studying legacy character sets, I found literally hundreds ofcharacters without proper Unicode codepoints. These are mapped in the PUArange as follows:

Bitmap
  • U+E080..E0FF: Teletext/Videotex block mosaics.
  • U+E100..: The most prominent and useful non-Unicode pseudographics:everything found in PETSCII, Videotex smooth mosaics, extra shades,round corners, X/Y doublers.
  • U+E800..: Somewhat stranger but still potentially useful: junctions withborder-aligned lines, diagonal line junctions, non-straight lines, weirderfill patterns, etc.
  • U+EC00..: Total oddities. Mostly game-oriented bitmaps and otherdepictive characters from Sharp MZ, Aquarius, etc.

Since Unicode 13.0, many of these are also available in Unicode, butthe PUA mappings are retained for compatibility.


Posted: 17 Mar 2015 at 00:08 by Codehead

One of the big problems OpenGL runs into after you’ve got your first few polygons flying around the screen is the lack of a standard method for generating text within the API.

A few techniques have evolved to tackle the problem:

Pre-generated string textures

The simplest and fastest method, a texture is pre-built for each piece of text that needs to be displayed. This is quick to render at run time, but isn’t very flexible or efficient.

Polygon glyphs created from outline font definitions

This method produces high quality, scalable text, but this is also the slowest approach due to the overhead of generating and rendering the glyph polygons.

WGL and GLUT extensions

These extensions do a great job of text rendering. However, these libraries are not universally available on all systems and I have a bad habit of trying to be portable and platform independent.

Bitmapped fonts

Bitmap fonts are fast, flexible and platform independent. However, there are some limitations: Quality suffers when scaling up the texture and the number of possible characters in a font bitmap is limited. Extended or Unicode character sets with accents or non-latin symbols are not well supported.

A bitmapped font is simply an atlas texture containing a collection of glyphs and symbols. (Note: the purple lines are a visual aid, they do not appear on the actual texture.)

The grid layout means that the calculation required to select any given character is quick and simple.

The area containing the selected characters can then be mapped onto a series of polygons to create dynamic strings of text.

Adding width information to the glyphs allows the textured quads to be overlapped to create better looking text with variable character widths.

There are quite a few bitmap font generators around, but I couldn’t find one that provided all the features I wanted. So I wrote my own.

Codehead’s Bitmap Font Generator (CBFG) is now at version 1.45 and supports the following features:

  • DIB rendering of font gives best font output, regardless of users screen settings
  • Global or per character position and width adjustment
  • Texture Sizes from 16×16 up to 4096×4096
  • Zoom up to 400% for accurate tweaking of character positions
  • Anti-aliasing or ClearType (XP+) for smoother looking fonts
  • Control of font width
  • Font preview option
  • TGA export option
  • BMP output option
  • BFF output in 8, 24 and 32bit colour depths
  • C++ example source code for loading and rendering BFF files
  • Binary font data export
  • Font info dump option
  • User configurable colours and startup parameters

Many people have made useful suggestions that have been implemented in CBFG, and the tool has been used on the following projects:

  • Floating Sandbox A 2D Physics Simulator developed by Gabriele Giuseppini.
  • Beginning Android Games An APress book by Robert Green and Mario Zechner
  • SkaPong by Einar
  • SF2DBmpFont a font loader for 3DS homebrew by Flarn2006
  • ByVac’s [BV4629] Touchscreen LCD

Downloads

CBFG Packages

Windows Installer Package

Files only zip

Source Code

CBFG has been open sourced under the BSD licence. You can get v1.45 on GitHub

BFF Loading Code

C/C++ - included in zip/installer.

Android by Codehead

O’Caml by Einar (local mirror)

SF2DBmpFont a font loader for SF2DLib by Flarn2006

The Future

CBFG hasn’t been in active development for a few years now, but there are still a few features I always wanted to add:

ToDo List

  • State save option
  • Merge/Extract font image

Wish List

Online Bitmap Font Generator

  • Export in other font generator formats
  • Edit font image
  • Unicode support

Known Issues

Bitmap Font Creator

Cleartype system setting can override antialias settings in application.

Bitmap Font Maker

Please enable JavaScript to view the comments powered by Disqus.