vfontas(1)

Name

vfontas — a bitmap font file transformation utility

Syntax

vfontas commands...

  Commands

-blankfnt

-canvas xsize ysize

-clearmap

-crop xpos ypos width height

-fliph

-flipv

-invert

-lge

-loadclt directory/

-loadfnt mu.fnt

-loadhex unicode.hex

-loadmap cp437AB.uni

-loadpsf ter-v32b.psfu

-savebdf out.bdf fontname

-saveclt outdir/

-savefnt x.fnt

-savepbm outdir/

-savepsf new.psfu

-savesfd new.sfd

-upscale xscale yscale

-xbrz factor

-xcpi ega437.cpi outdir/

-xlat xoffset yoffset

Description

vfontas (originally "VGA font file assembler") can transform raster font files in various ways.

  blankfnt

Initializes the memory buffer with 256 empty 8x16 glyphs. The use for this is with saveclt to get 256 blank glyph files for hand-editing.

  canvas

Enlarges the glyph box to the specified size. (It never shrinks it.)

  clearmap

Discards the Unicode mapping table.

  crop

Removes an outer area from the glyph images, shrinking the image in the process.

  fliph, flipv

Mirrors/flips glyphs.

  lge

Applies a "Line Graphics Enable" transformation on glyphs. It copies the pixels in the second rightmost column to the rightmost column, and does this for glyph indices 0xC0 to 0xDF.

  loadclt

Reads a directory full of CLT files containing glyphs. CLT is a textgraphical format to facilitate visual editing with a text console editor.

  loadfnt

Reads a headerless bitmap font file, as typically used for CGA/EGA/VGA/MDA hardware, from the specified file into memory. 8x8x256 (width/height/glyphs), 8x12x256, 8x14x256, 8x16x256 and 8x16x512 are supported.

  loadhex

Reads a Unifont .hex encoded file.

  loadmap

Reads a glyphindex <-> Unicode codepoint mapping table from the given file into memory. The format follows the maps from /usr/share/kbd/unimaps, that is, "0x00 U+0000" at its simplest. Multiple U+ codepoints can be specified in a line.

  loadpsf

Reads a PC Screen Font PSF 2 version 0.

  savebdf

Saves the font to a Glyph Bitmap Distribution Format file (BDF). This typefile can be processed further by other tools such as bdftopcf(1) or fontforge(1) to, for example, turn them into Portable Compiled Format (PCF) or TrueType/OpenType (TTF/OTF) files. (See the "Examples" section.)

  saveclt

Saves the current in-memory glyphs as multiple CLT files to the given directory. CLT is a textgraphical format to facilitate visual editing with a text console editor.

  savefnt

Saves the current in-memory glyphs to the given file, using the headerless format.

  savemap

Saves the current in-memory Unicode mapping table to the given file.

  savepsf

Saves the current in-memory glyphs as a PC Screen Font PSF2.0 file, which can then be loaded into a Linux text console with setfont(1).

  savesfd

Saves the font to a Spline Font Database file (SFD). This type of file can be processed further by fontforge(1).

  upscale

Performs a linear upscale by an integral factor in both dimensions for all glyphs.

  xbrz

Performs a xBRZ upscale by an integral factor.

  xcpi

Extracts a multi-font .cpi file (as was typically used on DOS) as separate .fnt files into the specified directory.

  xlat

Moves all glyphs around within their canvases by the specified amount.

Known limits

The Linux kernel accepts console font glyphs of at most 32x32 in size.

The Consoleet bitmap format

The Consoleet text bitmap format is very similar to PBM itself. Instead of "P1" as in PBM, a CLT file begins with "PCLT" on the first line. In the second line, width and height of the bitmap in pixels is given. What follow is the bitmap data: Each "off" pixel is represented by the 2-character string ".." Each "on" pixel is represented by the 2-character "##". Each row of pixels is terminated by a newline, like in PBM.

	PCLT
	9 7
	..................
	....##....##..##..
	..##..##..##..##..
	..##..##..####....
	..##..##..##..##..
	....##....##..##..
	..................

Examples

Decompose a classic file into editable pictograph text files (with the help of a Unicode map):

    vfontas -loadfnt /usr/share/kbd/consolefonts/mu.fnt -loadmap
    /usr/share/kbd/unimaps/cp437.uni saveclt

To convert a .fnt and scale it up to make it comfortably usable with a FullHD resolution Linux fbconsole:

    vfontas -loadfnt mu.fnt -loadmap cp437.uni -canvas 9 16 -lge -upscale 2 2
    -savepsf mu.psf

To convert a .fnt for use under X11 and XTerm (generates sizes 12, 24 and 36):

    for i in 1 2 3; do vfontas -loadfnt mux.fnt -loadmap cp437AB.uni -upscale $i
    >$i -savebdf - Mux | bdftopcf | gzip >~/.fonts/mux$i.pcf.gz;
    done; xterm -fa "misc Mux:size=24"

Comparison to earlier vfontas (2005-2018) invocation syntax

`vfontas -D out/ -xf x.fnt` has become `vfontas -loadfnt x.fnt -saveclt out/`.

`vfontas -D out/ -cf x.fnt` has become `vfontas -loadclt out/ -savefnt x.fnt`.

`vfontas -Ecf x.fnt` has become `vfontas -blankfnt -savefnt x.fnt`.

`vfontas -G <x.fnt >x.psf` has become `vfontas -loadfnt x.fnt -canvas 9 16 -lge -savepsf2 x.psf`.

`vfontas -W <x.fnt >x.psf` has become `vfontas -loadfnt x.fnt -upscale 2 1 -savepsf2 x.psf`.

`vfontas --cpi -D out/ -f x.cpi/` has become `vfontas -xcpi x.cpi out/`.

See also

hxtools(7)