Morphio
Morphs the font, so it renders worda as wordb.
📥 Installation
[!NOTE] You can try Morphio without installing it in the browser.
Using binstall
cargo binstall morphio
Downloading from Releases
Navigate to the Releases page and download respective binary for your platform. Make sure to give it execute permissions.
Compiling from Source
cargo install morphio
📖 Usage
$ morphio --help
Usage: morphio -i <input> -o <output> [-y] [--] <from> <to>
Morphio: Morphs the font, so it renders worda as wordb.
Positional Arguments:
from word to morph from
to word to morph to
Options:
-i, --input input font file path
-o, --output output font file path
-y, --yes allow overwrite output file if it exists
-h, --help display usage information
✅ TODO
- Allow morphing multiple words in one go
- Allow morphing words with different lengths
- Possibly using edit distance algorithms, but might need to favor substitutions over insertions/deletions
- Option for enabling/disabling word matching
- Say we want to morph "banana" to "orange"
- When word matching is enabled,
xbananawill not be morphed, because we're matching whole words, not letters - When word matching is disabled,
xbananawill be morphed toxorange
- Optimization
- Use
CoverageTable::Format2, which allows for more efficient storage of contiguous ranges of glyphs
- Use
- Better word matching
- Currently we consider whole words only by letters (
[a-zA-Z]+) - Next stage: consider digits (
[0-9]+) and underscores (_) - Maybe an option for toggling which characters to consider as part of words?
- Currently we consider whole words only by letters (
- Bug fixes
- Might not work with fonts with multiple language records, e.g.
IMPACT.TTF
- Might not work with fonts with multiple language records, e.g.