blankfnt
Initializes the memory buffer with 256 empty 8x16 glyphs. The primary purpose for this is with saveclt to
get blank glyph files for hand-editing. For a differently-sized canvas, combine with -crop or -canvas.
canvas
Enlarges the glyph box to the specified size. (It never shrinks it.)
clearmap
Discards the in-memory glyph index <-> 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 glyphindices 0xC0 to 0xDF. In other words, the
usefulness of the -lge command is more or less limited to DOS fonts which have graphic characters in
exactly those indices.
lgeu
Applies LGE on the graphic glyphs that are incp437 and other DOS codepages. It does this for unicodecodepoints rather than glyph indices. This is suitable for all kinds of font formats, but do make sure a
Unicode table is present. (BDF and PSF come with a table, .fnt does not, so use -loadmap before -lgeu).
lgeuf
Applies LGE on all glyphs from U+2500 thru U+25FF (Unicode "box drawing" and "box elements" classes),
with special handling for the shades at U+2591 thru U+2593. This is provided as an alternative to the
"true DOS look" that lge/lgeu would make.
loadbdf
Reads a BDF (Adobe Glyph Bitmap Distribution Format) font file.
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.
loadfnth
Reads a headerless bitmap font file, using the specified height N and width 8. The number of characters
is then autoderived from the filesize.
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. -loadmap does not clear the mapping table, which makes it
possible to cumulate mappings from multiple files.
loadpsf
Reads a PC Screen Font PSF 2 version 0. If the psf file comes with a mapping table, the current in-memory
table will be discarded and replaced with the one from the PSF.
move
Shift all glyphs by the given x/y offsets within their existing glyph box (possibly truncating them).
savebdf
Saves the font to a Glyph Bitmap Distribution Format file (BDF). This type of file 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.
saven1
N1 was an experiment to try and model the "diagonalization idea" (cf. -saven2) by analyzing the original
glyph bitmap. Its defining characteristic is a lookaround window of 3x3 pixels, whose contents are mapped
to a set of triangles. N1 has some drawbacks over the newer N2:
• N1 adds diagonals on single-pixel protrusions (e.g. the left end of the horizontal bar in an 'f' in
certain fonts). This is definitely not fixable with a 3x3 window and would require using 5x5.
• N1 adds triangles between pixels that do not necessarily belong together, such as in spirals like
U+0040 or jampacked glyphs like U+20A7. N2 operates on edges and knows their direction, and avoids
making connections to "pixel islands" at certain angles.
saven2
Similar to -savesfd, this produces an SFD file, but uses an alternate vectorizer (aptly named "N2"),
which smoothens the jagged edges of a bitmap font.
The N2 vectorizer is able to recognize the "stair" pattern of pixels and transform these sections to
45-degree angles. This diagonalization was originally employed by Arto Hatanpää (possibly in a long
session of manual work) for the "Nouveau IBM" and "Nouveau IBM Stretch" vector font versions of the IBM
VGA 9x16 ROM font.
The defining characteristic of N2 is that it analyzes glyph edges (similar to those produced by -savesfd)
using a lookaround window of 7 edge segments, which is used to work on areas of effectively 5x5 pixels.
When a 90/270 corner is found, it will be transformed by adding diagonal edges.
In comparison to other scalers,
• xBRZ erroneously round the ends of strokes (e.g. the '-' dash), N1/N2 does not.
• While xBRZ is a bitmap-to-bitmap procedure (also limited to 6x magnification as of writing), N1/N2
converts to vector.
• Autotrace/Potrace just is not targeted for low resolution sources (as 8x16 bitmap fonts are). Either
it will convert the bitmap 1:1 with jagged edges, or turn it into three or so beziers, which is not
nearly enough for '&'.
• N1/N2 is only specified for monochrome input.
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). The in-memory Unicode mapping table is added to the PSF.
savesfd
Saves the font to a Spline Font Database file (SFD). This type of file can be processed further by
fontforge(1). A fairly trivial vectorizer is used that maps each pixels to a square and then collapses
shared edges between those to reduce the number of polygons fontforge has to process.
setbold
For BDF/SFD output: Declare the font as being bold.
setname
Sets a name for the font, which gets emitted for BDF/SFD output. (The other file formats have no metadata
field for a name, so the filename is all you get.)
setprop
Sets a specific property for SFD fonts (also partly used by BDF).
upscale
Performs a linear upscale by an integral factor for all glyphs.
xcpi
Extracts a multi-font .cpi file (as was typically used on DOS) as separate .fnt files into the specified
directory. This operation does not touch the in-memory glyph buffers or Unicode mapping table.
xlat
Moves all glyphs around within their canvases by the specified amount. vfontas's coordinate system has
(0,0) in the upper left corner, with positive x going to the right, and positive y going down.