{"id":19569755,"url":"https://github.com/robhagemans/monobit","last_synced_at":"2025-04-06T20:07:55.589Z","repository":{"id":47073115,"uuid":"188114254","full_name":"robhagemans/monobit","owner":"robhagemans","description":"Tools for working with monochrome bitmap fonts","archived":false,"fork":false,"pushed_at":"2024-10-17T21:04:15.000Z","size":8411,"stargazers_count":220,"open_issues_count":9,"forks_count":12,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-30T19:04:37.713Z","etag":null,"topics":["8bit","bdf","bitfont","bitmap-font","bmfont","cpi","font","hex","ms-dos","psf","retro","retrocomputing"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robhagemans.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-22T21:10:56.000Z","updated_at":"2025-03-05T23:03:29.000Z","dependencies_parsed_at":"2024-04-20T21:26:10.398Z","dependency_job_id":"c6cb6111-1216-4fa8-b55d-0543d2307ec4","html_url":"https://github.com/robhagemans/monobit","commit_stats":{"total_commits":2187,"total_committers":7,"mean_commits":"312.42857142857144","dds":"0.19753086419753085","last_synced_commit":"f66f0dfc184fd624ccba9dd896e2734bd662878b"},"previous_names":[],"tags_count":56,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robhagemans%2Fmonobit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robhagemans%2Fmonobit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robhagemans%2Fmonobit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robhagemans%2Fmonobit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robhagemans","download_url":"https://codeload.github.com/robhagemans/monobit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247543587,"owners_count":20955865,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["8bit","bdf","bitfont","bitmap-font","bmfont","cpi","font","hex","ms-dos","psf","retro","retrocomputing"],"created_at":"2024-11-11T06:12:20.404Z","updated_at":"2025-04-06T20:07:55.570Z","avatar_url":"https://github.com/robhagemans.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n    -@@------------------------------------------@@------@@--------------@@-\n    -@@------------------------------------------@@------@@--@@----------@@-\n    -@@------------------------------------------@@----------@@----------@@-\n    -@@------@@@@@@@@@----@@@@---@@@@@----@@@@---@@@@@---@@-@@@@---------@@-\n    -@@------@@--@@--@@--@@--@@--@@--@@--@@--@@--@@--@@--@@--@@----------@@-\n    -@@------@@--@@--@@--@@--@@--@@--@@--@@--@@--@@--@@--@@--@@----------@@-\n    -@@------@@--@@--@@--@@--@@--@@--@@--@@--@@--@@--@@--@@--@@----------@@-\n    -@@------@@--@@--@@--@@--@@--@@--@@--@@--@@--@@--@@--@@--@@----------@@-\n    -@@------@@--@@--@@--@@--@@--@@--@@--@@--@@--@@--@@--@@--@@--@@------@@-\n    -@@------@@--@@--@@---@@@@---@@--@@---@@@@---@@@@@---@@---@@-@@------@@-\n    -@@------------------------------------------------------------------@@-\n    -@@------------------------------------------------------------------@@-\n    -@@------------------------------------------------------------------@@-\n\n\nTools for working with monochrome bitmap fonts\n==============================================\n\nThe `monobit` tools let you modify bitmap fonts and convert between several formats.\n\n`monobit`'s native format is `yaff`, a human-friendly, text-based visual format similar to the ones used by\nRoman Czyborra's `hexdraw`, Simon Tatham's `mkwinfont` and John Elliott's `psftools`. Details are\ngiven in [the `yaff` font file format specification](YAFF.md).\n\nMonobit requires Python 3.9 or above. Install through `pip install monobit`. Some formats or features require additional packages; see _Dependencies_ below for a list. These\nwill be installed automatically if you use `pip`.\n\n`monobit` can be used as a Python package or as a command-line tool.\n\n\n\nUsage examples\n--------------\n\n##### Convert utility\n\nHere are some examples of how to use the conversion utility.\n\n`monobit-convert --help`\n\nDisplay usage summary and command-line options\n\n`monobit-convert --help load --format=raw`\n\nDisplay usage summary and additional format-specific command-line options for conversion from raw binary.\n\n`monobit-convert fixedsys.fon`\n\nRecognise the source file format from \"magic bytes\" or suffix (here, a Windows font) and write fonts\nto standard output in `yaff` format.\n\n`monobit-convert roman.bdf to --format=unifont`\n\nRead font from BDF file and write to standard output as Unifont HEX.\n\n`monobit-convert fixed.psf to fixed.png`\n\nRead font in PSF format and write to disk as image in PNG format.\n\n`monobit-convert --format=c to --format=bdf`\n\nRead font from standard input as C-source coded binary and write to standard output as BDF.\n\nThe converter transparently reads and writes `gz`, `bz2`, or `xz`-compressed font files and can read\nand write `zip` and `tar` archives. Some font formats contain multiple fonts whereas others can\ncontain only one; the converter will write multiple files to a directory or archive if needed.\n\nIt is also possible to apply various transformations on the font before saving it. Check\n`monobit-convert --help` for usage.\n\n\n##### Banner utility\n\nThe banner utility renders text to standard output in a given font. This is similar to the ancient\n`banner` commands included in System-V and BSD Unixes.\n\nFor example, the banner at the top of this `README` was made with\n\n    me@bandit:~$ monobit-banner '| monobit. |' --font=VGASYS.FON\n\n`monobit-banner` has a number of rendering options - you can choose fonts, change the \"ink\" and \"paper\"\ncharacters, set a margin, scale text, and rotate by quarter turns.\nCheck `monobit-banner --help` for usage.\n\n\nProportional-spacing formats\n----------------------------\n\n| Format                | Short Name | Typical Extension           | Read  | Write | Type   | Features |\n|-----------------------|------------|-----------------------------|-------|-------|--------|----------|\n| Xerox Alto CONVERT    | `alto`     | `.al`                       |\u0026check;|       | binary | -        |\n| Amiga Font Contents   | `amiga-fc` | `.font`                     |\u0026check;|\u0026check;| binary | M; see `amiga` |\n| Amiga font            | `amiga`    |                             |\u0026check;|\u0026check;| binary | O C G  |\n| X11/Adobe BDF         | `bdf`      | `.bdf`                      |\u0026check;|\u0026check;| coded  | U SB MB V O G |\n| BeOS Bitmap Font      | `beos`     |                             |\u0026check;|\u0026check;| binary | U O G    |\n| Xerox Alto BITBLT     | `bitblt`   | `.strike` `.ks`             |\u0026check;|       | binary | O        |\n| AngelCode BMFont [P]  | `bmfont` | `.fnt` `.xml` `.json` + images|\u0026check;|\u0026check;| image  | M U SB MB O K G C |\n| FONTRIX (PC), PCPaint, GRASP, ChiWriter | `chiwriter` | `.set` `.[specx]ft` |\u0026check;| | binary | -   |\n| Consoleet / vfontas   | `consoleet`| `.txt`                      |\u0026check;|\u0026check;| visual | -        |\n| Daisy-Dot             | `daisy`    | `.nlq` `.nl2` `.nl3` `.nl4` |\u0026check;|       | binary | -        |\n| DosStart!             | `dosstart` | `.dsf`                      |\u0026check;|\u0026check;| coded  | -        |\n| EDWIN bitmap font     | `edwin`    | `.fnt`                      |\u0026check;|\u0026check;| coded  | -        |\n| Figlet font           | `figlet`   | `.flf`                      |\u0026check;|\u0026check;| visual | (3)      |\n| FZX font              | `fzx`      | `.fzx`                      |\u0026check;|\u0026check;| binary | O        |\n| OS/2 GPI resource     | `gpi`      | `.fnt`                      |\u0026check;|       | binary | SB O (MB K) |\n| Atari GDOS / GEM      | `gdos`     | `.fnt` `.gft` `.vga`        |\u0026check;|\u0026check;| binary | O        |\n| GEOS font file (CVT)  | `geos`     | `.cvt`                      |\u0026check;|\u0026check;| binary | M; see `vlir` |\n| Adafruit GFX font     | `gfxfont`  | `.h`                        |\u0026check;|\u0026check;| coded  | O        |\n| hexdraw               | `hexdraw`  | `.draw`                     |\u0026check;|\u0026check;| visual | U        |\n| HP PCL soft font      | `hppcl`    | `.sft` `.sfp` `.sfl`        |\u0026check;|\u0026check;| esc    | SB MB O  |\n| Apple IIgs font       | `iigs`     | `.fon`                      |\u0026check;|\u0026check;| binary | see `nfnt` |\n| Bitmap image [P]      | `image`    | `.png` `.gif` `.bmp`        |\u0026check;|\u0026check;| image  | -        |\n| Set of Bitmap images [P] | `imageset` | `.png` `.gif` `.bmp`     |\u0026check;|\u0026check;| image  | -        |\n| LISA font library     | `lisa`     | `.bin`                      |\u0026check;|       | binary | M; see `nfnt` |\n| MacOS font            | `mac`      | `.dfont` `.suit`            |\u0026check;|\u0026check;| binary | M K; see `nfnt` |\n| MouseGraphics Toolkit | `mgtk`     |                             |\u0026check;|       | binary | -        |\n| mkwinfont text format | `mkwinfont`| `.fd`                       |\u0026check;|\u0026check;| visual | SB       |\n| Windows or OS/2 font  | `mzfon`    | `.fon` `.exe` `.dll`        |\u0026check;| (1)   | binary | M; see `win`, `gpi` |\n| Bare NFNT resource    | `nfnt`     | `.f`                        |\u0026check;|\u0026check;| binary | SB O G (C) |\n| Palm OS font (v1/NFNT)| `palm`     | `.pdb`                      |\u0026check;|       | binary | M; see `nfnt` |\n| Palm OS PRC (v1/NFNT) | `palm-prc` | `.prc`                      |\u0026check;|       | binary | M; see `nfnt` |\n| X11 Portable Compiled Format |  `pcf` | `.pcf`                   |\u0026check;|\u0026check;| binary | U SB MB O |\n| PC/GEOS v2.0+         | `pcgeos`   | `.fnt`                      |\u0026check;|\u0026check;| binary | O (MB K) |\n| PILfont [P]           | `pilfont`  | `.pil` + `.pbm`             |\u0026check;|\u0026check;| image  | O        |\n| TeX PKFONT            | `pkfont`   | `.pk`                       |\u0026check;|       | binary | O        |\n| Adobe Prebuilt Format | `prebuilt` | `.bepf` `.lepf`             |\u0026check;|       | binary | G (V)    |\n| Xerox Alto PrePress   | `prepress` | `.ac`                       |\u0026check;|       | binary | O        |\n| The Print Shop        | `printshop`| `.pnf`                      |\u0026check;|       | binary | -        |\n| RISCOS x90y45 format  | `riscos-xy`|                             |\u0026check;|       | binary | O G      |\n| RISCOS new format     | `riscos`   |                             |\u0026check;|       | binary | O G      |\n| Signum! 2             | `signum`   | `.e24` `.p9` `.p24` `.l30`  |\u0026check;|       | binary | -        |\n| SFont                 | `sfont`    |                             |\u0026check;|\u0026check;| image  | G C      |\n| SFNT embedded bitmap  | `sfnt`     | `.otb` `.ttf` `.otf` [F] [**] |\u0026check;| (2) | binary | M US SB MB O K V G (C) |\n| SFNT collection       | `ttcf`     | `.otc` `.ttc` [F] [**]      |\u0026check;| (2)   | binary | M US SB MB O K V G (C) |\n| vfont                 | `vfont`    |                             |\u0026check;|\u0026check;| binary | O        |\n| Bare GEOS font record | `vlir`     |                             |\u0026check;|\u0026check;| binary | O        |\n| Windows FNT resource  | `win`      | `.fnt`                      |\u0026check;|\u0026check;| binary | SB       |\n| monobit yaff          | `yaff`     | `.yaff`                     |\u0026check;|\u0026check;| visual | M US SB MB O K V G C |\n\n[P] requires **PIL**  \n[F] requires **fontTools**  \n\n(1) 16-bit Windows NE container with FNT resource only  \n(2) Bitmap only (OTB)  \n(3) Limited read functionality: no support for ASCII-art, which is a core feature of Figlet\n\nM  multiple-font container  \nU  Unicode  \nUS Unicode, multi-codepoint sequences  \nSB Single-byte character sets  \nMB Multi-byte character sets  \nO  Overlapping glyphs\nK  Kerning  \nV  Vertical metrics  \nG  Greyscale fonts  \nC  Colour fonts (not supported by `monobit`)  \n\nIf the abbreviation is bracketed, the format supports this but it is not implemented.\n\n\nCharacter-cell formats\n----------------------\n\n| Format                | Short Name | Typical Extension           | Read  | Write | Type   | Cell | Features |\n|-----------------------|------------|-----------------------------|-------|-------|--------|------|----------|\n| 64C                   | `64c`      | `.64c`                      |\u0026check;|\u0026check;| binary | 8x8  | -        |\n| +3DOS                 | `plus3dos` |                             |\u0026check;|\u0026check;| binary | 8x8  | -        |\n| BBC soft font         | `bbc`      |                             |\u0026check;|\u0026check;| esc    | 8x8  | -        |\n| Codepage Information  | `cpi`      | `.cpi`                      |\u0026check;|\u0026check;| binary | 8xN  | M SB     |\n| Dashen                | `dashen`   | `.pft`                      |\u0026check;|       | binary | any  | -        |\n| DEC DRCS soft font    | `dec`      |                             |\u0026check;|\u0026check;| esc    | \u003e4xN | -        |\n| Dr. Halo / Dr. Genius | `drhalo`   | `.fon`                      |\u0026check;|       | binary | any  | -        |\n| FONTX2                | `fontx`    | `.fnt`                      |\u0026check;|\u0026check;| binary | any  | MB       |\n| FONTEDIT              | `fontedit` | `.com`                      |\u0026check;|       | binary | 8xN  | -        |\n| Fontraption           | `frapt`    | `.com`                      |\u0026check;|       | binary | 8xN  | -        |\n| Fontraption TSR       | `frapt-tsr`| `.com`                      |\u0026check;|       | binary | 8xN  | -        |\n| PCPaint, GRASP old format | `grasp`| `.set` `.fnt`               |\u0026check;|\u0026check;| binary | any  | -        |\n| Hanzi Bitmap Font     | `hbf`      | `.hbf` + raw binary         |\u0026check;|\u0026check;| binary | any  | SB MB    |\n| GNU Unifont           | `unifont`  | `.hex`                      |\u0026check;|\u0026check;| coded  | 8x16 (strict) 8xN\u003c=32 (ext) | MC U (strict) MC US (ext) |\n| Bare codepage         | `kbd`      | `.cp`                       |\u0026check;|\u0026check;| binary | 8xN  | SB       |\n| LETAFONT loader       | `letafont` | `.com`                      |\u0026check;|       | binary | 8x8  | -        |\n| REXXCOM Font Mania    | `mania`    | `.com`                      |\u0026check;|       | binary | 8xN  | -        |\n| NetBSD wsfont C header| `netbsd`   | `.h`                        |\u0026check;|\u0026check;| coded  | any  | M SB     |\n| Optiks PCR Font       | `pcr`      | `.pcr`                      |\u0026check;|\u0026check;| binary | 8xN  | -        |\n| PC Screen Font        | `psf`      | `.psf` `.psfu`              |\u0026check;|\u0026check;| binary | any (v2) 8xN (v1) | US  |\n| psf2ams PSFCOM        | `psfcom`   | `.com`                      |\u0026check;|       | binary | 8x8, 8x16 | -   |\n| psf2txt               | `psf2txt`  | `.txt`                      |\u0026check;|\u0026check;| visual | any  | US       |\n| Raw binary            | `raw`      | `.fnt` `.rom` [*]           |\u0026check;|\u0026check;| binary | -    | -        |\n| UDG loader            | `udg`      | `.com`                      |\u0026check;|       | binary | 8x8  | -        |\n| FreeBSD console font  | `vtfont`   | `.fnt`                      |\u0026check;|\u0026check;| binary | any  | MC U     |\n| Hercules Write On!    | `writeon`  | `.wof`                      |\u0026check;|\u0026check;| binary | 8x14 multiples | - |\n| NetBSD wsfont binary  | `wsfont`   | `.wsf`                      |\u0026check;|\u0026check;| binary | any  | SB       |\n| Wyse-60 soft font     | `wyse`     |                             |\u0026check;|\u0026check;| esc    | 8x16 | -        |\n| XBIN font section     | `xbin`     | `.xb`                       |\u0026check;|\u0026check;| binary | 8X\u003c=32 | -        |\n| ZapFont (old format)  | `zapfont`  | `,1bd`                      |\u0026check;|\u0026check;| binary | any  | -        |\n| ZapRedraw UCS         | `zapredraw`| `,1bd`                      |\u0026check;|\u0026check;| binary | any  | U        |\n\n\nMC multi-cell glyphs\n\n\nCharts\n------\n\nThese formats output a table of glyphs. PDF, text and block charts are write-only,\nimage charts can be read through the `image` reader.\n\n\n| Format            | Short Name | Read  | Write |\n|-------------------|------------|-------|-------|\n| Text              | `chart`    |       |\u0026check;|\n| Block elements    | `blocks`   |       |\u0026check;|\n| ANSI colours      | `shades`   |       |\u0026check;|\n| Image [P]         | `image`    |\u0026check;|\u0026check;|\n| PDF [R]           | `pdf`      |       |\u0026check;|\n\n[P] requires **PIL**  \n[R] requires **reportlab**  \n\n\nGreyscale and colour fonts\n--------------------------\n\nGreyscale and colour support is experimental. An extension of the YAFF format allows storing\nglyphs with up to 8 bits per pixel (256 colours or grey levels).\n\n\nStroke (vector) formats\n-----------------------\n\nStroke font support is experimental. Stroke fonts are scalable fonts defined as\nline segments. They are fundamentally different from modern fonts in that they\ndefine single strokes whereas modern fonts define outlines to be filled with ink.\nAdditionally, the fonts currently supported consist of straight line segments only.\n\n\n| Format                     | Short Name | Typical Extension | Read  | Write |\n|----------------------------|------------|-------------------|-------|-------|\n| monobit yaff               | `yaff`     | `.yaff`           |\u0026check;|\u0026check;|\n| SVG Fonts                  | `svg`      | `.svg`            |\u0026check;|\u0026check;|\n| Windows resource           | `win`      | `.fnt`            |\u0026check;|\u0026check;|\n| Windows font               | `fon`      | `.fon`            |\u0026check;|\u0026check; (NE) |\n| Borland Graphics Interface | `borland`  | `.chr`            |\u0026check;|\u0026check;|\n| Hershey fonts (Jim Hurt)   | `hurt`     | `.jhf`            |\u0026check;|       |\n| DOSStart                   | `dosstart` | `.dsf`            |\u0026check;|       |\n| GIMMS                      | `gimms`    | `.bin`            |\u0026check;|       |\n\n\nWrapper formats\n-----------------\n\n`monobit` will recurse and extract font files from a number of common container,\narchive, compression and encoding formats:\n\n| Format                | Name     | Typical Extension       | Read  | Write |\n|-----------------------|----------|-------------------------|-------|-------|\n| PKZip/WinZip          | `zip`    | `.zip`                  |\u0026check;|\u0026check;|\n| GNU tar               | `tar`    | `.tar` `.tgz`           |\u0026check;|\u0026check;|\n| RAR [A]               | `rar`    | `.rar`                  |\u0026check;|       |\n| 7-Zip [A]             | `7zip`   | `.7z`                   |\u0026check;|\u0026check;|\n| MS Cabinet [A]        | `cabinet`| `.cab`                  |\u0026check;|       |\n| LHarc/LHA/LZH [A]     | `lharc`  | `.lha` `.lzh`           |\u0026check;|       |\n| ACE [C]               | `ace`    | `.ace`                  |\u0026check;|       |\n| ISO 9660 [A]          | `iso9660`| `.iso`                  |\u0026check;|\u0026check;|\n| WARC [A]              | `warc`   | `.warc`                 |\u0026check;|\u0026check;|\n| CPIO [A]              | `cpio`   | `.cpio`                 |\u0026check;|\u0026check;|\n| PAX [A]               | `pax`    | `.pax`                  |\u0026check;|\u0026check;|\n| XAR [A]               | `xar`    | `.xar`                  |\u0026check;|\u0026check;|\n| AR [A]                | `ar`     | `.ar`                   |\u0026check;|\u0026check;|\n| GZip                  | `gzip`   | `.gz`                   |\u0026check;|\u0026check;|\n| BZip2                 | `bzip2`  | `.bz2`                  |\u0026check;|\u0026check;|\n| XZ/LZMA               | `lzma`   | `.xz` `.lzma`           |\u0026check;|\u0026check;|\n| Compress [Z]          | `compress`| `.Z`                   |\u0026check;|\u0026check;|\n| AppleSingle           | `apple1` | `.as`                   |\u0026check;|       |\n| AppleDouble           | `apple2` | `.adf` `.rsrc`          |\u0026check;|       |\n| MacBinary             | `macbin` | `.bin`                  |\u0026check;|       |\n| BinHex 4.0            | `binhex` | `.hqx`                  |\u0026check;|       |\n| BinSCII               | `binscii`| `.bsc` `.bsq`           |\u0026check;|       |\n| Intel Hex             | `intel`  | `.ihex` `.ihx`          |\u0026check;|\u0026check;|\n| Base64                | `base64` |                         |\u0026check;|\u0026check;|\n| Quoted-printable      | `quopri` |                         |\u0026check;|\u0026check;|\n| UUEncode              | `uuencode`|                        |\u0026check;|\u0026check;|\n| yEncode [Y]           | `yenc`   |                         |\u0026check;|\u0026check;|\n| MIME multipart email  | `email`  | `.eml` `.msg`           |\u0026check;|\u0026check;|\n| C or C++ coded binary | `c`      | `.c` `.cpp` `.cc` `.h`  |\u0026check;|\u0026check;|\n| JSON coded binary     | `json`   | `.json`                 |\u0026check;|\u0026check;|\n| Python coded binary   | `python` | `.py`                   |\u0026check;|\u0026check;|\n| Pascal coded binary   | `pascal` | `.pas`                  |\u0026check;|\u0026check;|\n| BASIC coded binary    | `basic`  | `.bas`                  |\u0026check;|\u0026check;|\n\n[A] requires **libarchive**  \n[C] requires **acefile**  \n[Y] requires **python3-yenc**  \n[Z] requires **ncompress**  \n\n_Note that many of these currently require reading the full archive into memory, which may\nnot be practicable with e.g ISO9660 or WARC files which can hold whole filesystems._\n\n\n[*] Identifying raw binary files\n--------------------------------\n\nThis is the most common format used on old platforms, often with the unhelpful suffix `.fnt`. As there is no metadata, it's up to you to specify the character-cell size. The most common, and default, size is 8x8 (CGA and many 8-bit platforms), followed by 8x16 (VGA) and 8x14 (EGA).\n\n- 8x8 raw files are also known as `.f08`, `.ch8`, `.88`, `.chr`, `.udg`, and many others.\n- 8x14 raw files are also known as `.f14` or `.814`.\n- 8x16 raw files are also known as `.f16`, Warp 9 `.fnt` or Degas Elite `.fnt`\n- Genecar `.car` files are 16x16 raw files.\n- Harlekin III `.fnt` files are raw binaries with a 4096x8 pixel bitmap strike hosting 512 8x8 glyphs side by side. Extract with `-strike-width=512`.\n\nIt is also useful to check the file size. Raw files commonly hold 96 (ASCII excluding controls), 128 (ASCII), 256, or multiples thereof. Common file sizes therefore are:\n\n|       |  8x8  |  8x14 |  8x16 |\n|-------|-------|-------|-------|\n| **96**|   768 |  1344 |  1536 |\n|**128**|  1024 |  1792 |  2048 |\n|**256**|  2048 |  3584 |  4096 |\n|**512**|  4096 |  7168 |  8192 |\n\n\nIf your unidentified font file has one of these sizes, chances are it is a raw binary file.\n\n\n[**] TrueType / OpenType embedded bitmaps\n-----------------------------------------\n\n`monobit` can extract bitmaps embedded in TrueType and OpenType font files. It\nshould be kept in mind that these are primarily intended as scalable formats,\nand only exceptionally embed bitmaps to improve rendering on low-resolution displays.\n\n_The vast majority of `.ttf`, `.otf`, `.dfont` etc. files do not contain bitmaps at all_.\nThis is true even for fonts with a pixelised look.\nTo convert these you first need to _rasterise_ them, which `monobit` does not do.\nSome of the other font tools linked below do have rasterising features.\n\n`monobit` can experimentally output OpenType Bitmap (`.otb`) files, a bitmap-only\nfile format supported by Linux desktops.\n\n\nDependencies\n------------\n\nSome formats require\n- **PIL** (`Pillow`)\n- **reportlab**\n- **fontTools**\n- **libarchive**\n- **python3-yenc**\n- **ncompress**\n- **acefile**\n\nThe renderer additionally employs\n- **uniseg**\n- **python-bidi**\n- **arabic-reshaper**\n\nAlmost all can be installed through Pip:\n\n    pip install Pillow reportlab fonttools uniseg python-bidi arabic-reshaper libarchive-c ncompress acefile\n\nThe package `python3-yenc` is available at https://github.com/oe-mirrors/python3-yenc and through some Linux distributions.\nWithout these packages, some functionality may not be available.\n\n\nCopyright and licences\n----------------------\n\n`monobit` and the `yaff` specification are copyright 2019--2024 Rob Hagemans and\nreleased under the [MIT licence](https://opensource.org/licenses/MIT).\n\n`monobit` contains code from:  \n- [`mkwinfont`](https://www.chiark.greenend.org.uk/~sgtatham/fonts/) copyright 2001 Simon Tatham. All rights reserved.  \n- [`dewinfont`](https://www.chiark.greenend.org.uk/~sgtatham/fonts/) copyright 2001,2017 Simon Tatham. All rights reserved.  \n- [OS/2 GPI Font Tools](https://github.com/altsan/os2-gpi-font-tools) (C) 2012 Alexander Taylor  \n- [FONDU](https://sourceforge.net/projects/fondu/) copyright (C) 2000,2001,2002,2003 by George Williams\n\nPlease refer to the notices in the `windows` and `os2` subpackages and `mac/fond.py` module for licences and more information.\n\nThe font files in `tests/fonts` are subject to their own\nlicences, some of which are more restrictive. These are files used for testing\nand development and are not included in the packaged distribution. See `tests/fonts/README.md` and notices included with individual files.\n\n\nAcknowledgements\n----------------\n\n`monobit` would not exist without those documenting,\nreverse-engineering, implementing and preserving font formats and files:\n- [The Internet Archive](https://archive.org)\n- [Archive Team](http://fileformats.archiveteam.org/wiki/Fonts)\n- [Jason Scott's textfiles.com](http://textfiles.com)\n- [John Elliott's homepage](http://www.seasip.info)\n- [Simon Tatham's fonts page](https://www.chiark.greenend.org.uk/~sgtatham/fonts/)\n- [Aivosto's character set documentation](https://www.aivosto.com/articles/charsets.html)\n- [Rebecca Bettencourt's character set documentation](https://www.kreativekorp.com/charset/)\n- [Xiphoseer's Signum Document Toolbox](https://sdo.dseiler.eu/)\n- [George Williams et al.'s FontForge documentation](https://fontforge.org/docs/index.html)\n- [FreeType Glyph Conventions](https://freetype.org/freetype2/docs/glyphs/index.html)\n- ... and many others\n\n\nOther software\n--------------\n\nOther bitmap font tools you could use in conjunction with (or instead of) `monobit` include:\n- [FontForge](http://fontforge.github.io/en-US/)\n- Rebecca Bettencourt's [Bits'n'Picas](https://github.com/kreativekorp/bitsnpicas)\n- John Elliott's [PSFTools](http://www.seasip.info/Unix/PSF/)\n- Mark Leisher's [`gbdfed`](http://sofia.nmsu.edu/~mleisher/Software/gbdfed/)\n- [RECOIL](https://recoil.sourceforge.net/)\n- John Zaitseff's [console font utilities](https://www.zap.org.au/projects/console-fonts-utils/)\n- George Williams's [Fondu](https://fondu.sourceforge.net)\n- VileR's [Fontraption](https://github.com/viler-int10h/Fontraption/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobhagemans%2Fmonobit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobhagemans%2Fmonobit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobhagemans%2Fmonobit/lists"}