mirror of
https://github.com/waveplate/img2irc.git
synced 2025-06-07 18:59:53 +00:00
62 lines
1.9 KiB
Markdown
62 lines
1.9 KiB
Markdown
This tool converts an image containing Unicode glyphs into Rust-compatible bitmap arrays for use in the `img2irc` project.
|
||
|
||
## Workflow Overview
|
||
|
||
1. **Create input files:**
|
||
|
||
* An **image file** with glyphs rendered horizontally, without gaps. Essentially a cropped screenshot of the rendered characters with no spaces in between.
|
||
* A **text file** listing the same glyphs separated by spaces.
|
||
|
||
2. **Generate JSON bitmap data (`mkbitmap.py`).**
|
||
|
||
3. **Convert JSON to Rust source (`mkrust.py`).**
|
||
|
||
4. Replace `src/chars.rs` in `img2irc` with the generated Rust file and recompile.
|
||
|
||
---
|
||
|
||
## `mkbitmap.py`
|
||
|
||
Slices an image into bitmaps and outputs JSON.
|
||
|
||
**Arguments:**
|
||
|
||
| Argument | Description |
|
||
| ------------- | ------------------------------------------------ |
|
||
| `chars_file` | Text file containing glyphs separated by spaces. |
|
||
| `image_file` | Horizontal image of glyphs (no gaps). |
|
||
| `--icw` | Input character width (pixels). |
|
||
| `--ich` | Input character height (pixels). |
|
||
| `--threshold` | Black/white pixel threshold (0–255). |
|
||
| `--obw` | Output bitmap width. |
|
||
| `--obh` | Output bitmap height. |
|
||
| `--output` | Output JSON filename. |
|
||
|
||
**Example:**
|
||
|
||
```bash
|
||
./mkbitmap.py chars.txt chars.png --icw 20 --ich 40 --threshold 128 --obw 10 --obh 20 --output chars.json
|
||
```
|
||
|
||
---
|
||
|
||
## `mkrust.py`
|
||
|
||
Converts JSON bitmap data to Rust source code.
|
||
|
||
**Arguments:**
|
||
|
||
| Argument | Description |
|
||
| ------------ | ----------------------------- |
|
||
| `input_json` | JSON file from `mkbitmap.py`. |
|
||
| `output_rs` | Output Rust source file. |
|
||
|
||
**Example:**
|
||
|
||
```bash
|
||
./mkrust.py chars.json chars.rs
|
||
```
|
||
|
||
Replace the resulting `chars.rs` in your `img2irc` project and recompile.
|
||
|
||
You can use the included `chars.txt` and `chars.png` as an example. |