fontconv/fontconv.py

26 lines
765 B
Python
Raw Normal View History

2022-11-08 07:46:42 +01:00
FONT_PATH = 'DinkieBitmap-7pxDemo.ttf'
GRID_SIZE = 7
GRID_PADD = 1
UNIC_FIRS = '4E00'
UNIC_LAST = '9FFF'
from PIL import Image, ImageDraw, ImageFont
first = int(UNIC_FIRS, base=16)
last = int(UNIC_LAST, base=16)
im_width = (GRID_SIZE + GRID_PADD * 2) * 16
im_height: int = int((GRID_SIZE + GRID_PADD * 2) * ((last - first + 1) / 16))
im = Image.new('RGB', (im_width, im_height), color='#FFFFFF')
draw = ImageDraw.Draw(im)
font = ImageFont.truetype(FONT_PATH, GRID_SIZE, encoding='utf-8')
x, y = 0, 0
for i in range(first, last + 1):
if y == 16:
x = x + 1
y = 0
draw.text(((GRID_SIZE + GRID_PADD * 2) * y + GRID_PADD, (GRID_SIZE + GRID_PADD * 2) * x + GRID_PADD), chr(i), '#000000', font=font)
y = y + 1
im.save(f'U+{UNIC_FIRS}.png')