cbmfont
cbmfont
v0.25
cbmfont is a linux32 elf32 c99 application
cbmfont can do multiple things with cbm amiga pixel fonts, including
-crafting a preview image
-dumping the font gfx to an image file
-prints infos about a fontfile as a single line summary
-lint reporting about the font, with warning & errors
-font files decoding, reporting about diskfont file structure
cbmfont can only handle pixel fonts b&w, grayscale or coloured.
vector font .otag file can't be loaded with it.
download linux ELF32 exe i386:
cbmfont-0.25.tar.gz (35k)
cbmfont [--help][--version][-v][-l|--lint][-g][-c][-d][-s|--symbols][-p|--preview][--cmap [FILENAME]][-r PATH] FILE
--version
--help help
-v print info while doing
-l or --lint report lint
-g report about glyphs while drawing text, require -p
-c or --chunks report about file chunks
-t draw glyphs on the command line, require -p
-ds or --symbols craft an image with the font content
-p or --preview craft a preview image
-s or --summary short font summary
--fg rgba color as 0xRRGGBBAA works only with b&w fonts
--bg rgba color as 0xRRGGBBAA works only with b&w fonts
--cmap [FILENAME] load .cmap palette, filename with path
--injectcmap [FILENAME] load .cmap palette, then modify the font files !!cannot be reversed!!
-r PATH destination directory.
FILE source file.
preview
option -p or --previewoption --preview craft an image file, a png, in the work directory.
if -r [PATH] is used, the image file will be in PATH
file is named HANDLE_preview.png with HANDLE being the name of the .font without ".font"
colors can be changed with --fg and --bg
.font preview in a window
IMAGEVIEWER="display"
DOTFONT="/usr/local/share/fonts_pixel/1994/SCOOPY2.font"
HANDLEFONT=$(basename "$DOTFONT" \.font)
cbmfont -p "$DOTFONT" -r /tmp/ ; $IMAGEVIEWER /tmp/"$HANDLEFONT"_preview.png ; rm /tmp/"$HANDLEFONT"_preview.png
short font summary str
option -s or --summaryprints a single line summary per fontfile, as:
Mcoop.font cbm font, 6 entries:
Mcoop.font #0, 60, YSize: 60, not found
Mcoop.font #1, 44, YSize: 44, not found
Mcoop.font #2, 39, YSize: 39, not found
Mcoop.font #3, 30, YSize: 30, Style:NORMAL , Flags:TALLDOT PROPORTIONAL DESIGNED , Glyphs ranges: OPERATORS NUMBERS ASCII_UPPERCASES BRACKETS ASCII_LOWERCASES
Mcoop.font #4, 21, YSize: 21, Style:NORMAL , Flags:TALLDOT PROPORTIONAL DESIGNED , Glyphs ranges: OPERATORS NUMBERS ASCII_UPPERCASES BRACKETS ASCII_LOWERCASES
Mcoop.font #5, 17, YSize: 17, Style:NORMAL , Flags:DISKFONT TALLDOT PROPORTIONAL DESIGNED , Glyphs ranges: OPERATORS NUMBERS ASCII_UPPERCASES BRACKETS ASCII_LOWERCASES
find about the meaning of those tags in the tables below.
glyphs ranges are checked via the font glyphs definition, and then each glyph is checked to verify an image exists. if a defined range has each glyph then the tag is printed. there is, uptoday, no way to verify the encoding so those names are only indications about the range.
to report about multiple files, bash could be used:
for FILE in *.font; do cbmfont -s "$FILE" ;done
lint
option -l or --lintthere are really few lint detected uptnow.
-if files are found
-if drawer content has more or less files than the .font has
==========================================
Prime.font
==========================================
fontdrawer found:Prime ✔ found
lint: 2 entries found != 3 .font fileentries
dotfontfile requested fc_FontDimFileName:9 ✔ found
dotfontfile requested fc_FontDimFileName:8 ✔ found
dotfontfile requested fc_FontDimFileName:11 ✘ not found
==========================================
garamond.font
==========================================
fontdrawer found:garamond ✔ found
lint: 0 entries found != 3 .font fileentries
dotfontfile requested fc_FontDimFileName:23 ✘ not found
dotfontfile requested fc_FontDimFileName:32 ✘ not found
dotfontfile requested fc_FontDimFileName:64 ✘ not found
to report about multiple files:
for FILE in *.font; do cbmfont -l "$FILE" ;done
print info while doing things
option -v
font style | | |
NORMAL | normal | |
UNDERLINED | underlined | |
BOLD | bold face | |
ITALIC | italic (slanted 1:2 right) | |
EXTENDED | extra wide extended face (wider than normal) | |
COLORFONT | a color font | |
TAGGED | | **not implemented** |
font flags | | |
ROMFONT | The font is built into the ROM (mostly, only Topaz-8 and Topaz-9 are ROM fonts). | |
DISKFONT | The font was loaded from disk | |
REVPATH | The font is designed to be printed from from right to left | **not implemented** |
TALLDOT | The font was designed for a Hires screen (640x200 NTSC, non-interlaced) | **not implemented** |
WIDEDOT | The font was designed for a Lores Interlaced screen (320x400 NTSC) | **not implemented** |
FIXEDWIDTH | any glyphs have the same widths, are constant | non standard |
PROPORTIONAL | Glyphs widths of this font are not constant | |
DESIGNED | The font size was explicitly designed at this size rather than constructed. | |
REMOVED | the font has been removed | **not implemented** |
colourfont flags | | |
COLORFONT | The color map for this font contains colors specified by the designer. | |
GREYFONT | The colors for this font describe evenly stepped gray shades from low to high. | |
ANTIALIAS | zero background thru fully saturated char | **not implemented** |
glyphs ranges tags | range | if encoding ascii or latin | |
ASCII_CONTROLS | 0-31 | ascii control codes | |
OPERATORS | 33-47 | ascii !"#$%&'()*+,-./ | |
NUMBERS | 48-57 | ascii numbers | |
PUNCTUATIONS | 58-64 | ascii :SEMIC<=>?@ | |
ASCII_UPPERCASES | 65-90 | ascii uppercase | |
BRACKETS | 91-96 | ascii [\]^_` | |
ASCII_LOWERCASES | 97-122 | ascii lowercase | |
CURLIES | 123-126 | ascii {|}~ | |
LATIN_CONTROLS | 127-159 | latin control codes | |
LATIN_SPECIALS | 160-191 | latin special glyphs | |
LATIN_UPPERCASES_ACCENTS | 192-222 | latin uppercase accented | |
LATIN_LOWERCASES_ACCENTS | 223-255 | latin lowercase accented | |
changelog
20250905 v0.25
-cleanups glyphs reports printouts
-tested ok with 1856 .font files
-improved cli arg color handling
-report about .font file content also if drawer is missing
-multiple small fixes
-version 0.25
20250902 v0.23
-summary includes info about glyphs ranges found in the font
-summary cleanup
-preview improved
-multiple small fixes
-version 0.23
20250901 v0.21
-if a cmap is found use it automatically
-better errors messages
-improved cli arg color handling
-changed some cli args, summary is now -s or --summary
-multiple small fixes
-version 0.21
20250830 v0.2
-made a test suite to test the cli, and fixed errors found
-return codes now linux style: return 0 if ok, !0 on errors
-improved build so exe is smaller
-version 0.2
-tar.gz archive
20240402 v0.1
-multiple small fixes
-handle subdirectories better
-preview also if some files are missing
20231023 v0.1
-draw with other colors, also .cmap palette files
cli interface with --fg --bg --cmap
-option to return a short single line summary about the font,
cli interface with -t
20231014-23 v0.1
-improved many things
-load most fonts,
-report about probable palette errors
-inject palette in existing font file -function only, no cli interface
-fallback to uppercase if lowercase glyph absent
-report if other files are found in the font drawer
20220126 v0.0
-can do previews
links
Amiga bitmap font reader/viewer for Windows and Linux (written in C). by mrmcsoftware
afont.c
python tools to read amiga bitmap font files, also convert to ttf. by smugpie
here
R package AmigaFFH has ways to use mono fonts:
here
|