kopia lustrzana https://github.com/peterhinch/micropython-font-to-py
Add c_to_python_font.py.
rodzic
eebd7307af
commit
c9231076e4
|
@ -0,0 +1,54 @@
|
|||
# Icon Fonts
|
||||
|
||||
It is possible to display icons by incorporating their images in a font file.
|
||||
There are `.ttf` and `.otf` files available which can be converted to Python
|
||||
using `font_to_py.py`. I have not had much success with these. I also wanted
|
||||
to create my own icons. I also experimented with using a font editor to modify
|
||||
an existing font. I found the font editor unintuitive and hard to use.
|
||||
|
||||
The solution offered here uses the Linux `bitmap` editor plus a utility to
|
||||
convert a set of its output files to a Python font file. The image below shows
|
||||
typical usage.
|
||||
|
||||

|
||||
|
||||
# The bitmap editor
|
||||
|
||||
This is documented in the man pages, but it is easy and intuitive to use. To
|
||||
generate (say) 19x19 icons, issue
|
||||
```bash
|
||||
$ bitmap -size 19x19
|
||||
```
|
||||
Save each bitmap under a different name: I use a `.c` extension as they are C
|
||||
source files.
|
||||
|
||||
You need to create an additional icon to provide the output under error
|
||||
conditions, i.e. if an attempt is made to display a glyph not in the font.
|
||||
|
||||
# The file list
|
||||
|
||||
Create a text file listing the bitmap filenames, one filename per line. The
|
||||
icon to be used as the default (error) image should be first. Subsequent icons
|
||||
will be assigned to characters "A", "B", "C"...
|
||||
|
||||
# Creating the Python font
|
||||
|
||||
Assuming a file list `my_file_list.txt`, the following will create
|
||||
`my_font.py`. It requires Python 3.8 or later. The `font_to_py.py` file should
|
||||
be in the same directory.
|
||||
|
||||
```bash
|
||||
$ ./c_to_python_font.py my_file_list.txt my_font.py
|
||||
```
|
||||
|
||||
# Using the font
|
||||
|
||||
The following will print `icon[2]` where `icon[0]` is the default and `icon[1]`
|
||||
is associated with "A".
|
||||
```python
|
||||
# Instantiate the ssd display object
|
||||
import my_font
|
||||
import CWriter
|
||||
wri = CWriter(ssd, my_font)
|
||||
wri.printstring("B")
|
||||
```
|
Ładowanie…
Reference in New Issue