mirror of
https://github.com/stasenso/rp_pico_display_engine.git
synced 2026-06-26 21:32:41 +03:00
34 lines
1.4 KiB
Python
34 lines
1.4 KiB
Python
from PIL import Image, ImageDraw, ImageFont
|
|
|
|
# Настройки
|
|
font_size = 20 # Размер шрифта
|
|
chars_per_row = 20 # Количество символов в строке
|
|
grid_size = font_size + 2 # Размер ячейки (с отступами)
|
|
font_path = "/usr/share/fonts/truetype/dejavu/DejaVuSerifCondensed.ttf" # Путь к шрифту
|
|
|
|
# Диапазоны символов
|
|
ascii_range = range(32, 128) # ASCII символы
|
|
cyrillic_range = range(0x0400, 0x0500) # Кириллица (U+0400 - U+04FF)
|
|
|
|
# Объединённый диапазон символов
|
|
all_chars = list(ascii_range) + list(cyrillic_range)
|
|
|
|
# Вычисление размеров изображения
|
|
rows = (len(all_chars) + chars_per_row - 1) // chars_per_row
|
|
output_size = (chars_per_row * grid_size, rows * grid_size)
|
|
|
|
# Создание изображения
|
|
image = Image.new("1", output_size, color=1) # Монохромное изображение (1 бит на пиксель)
|
|
draw = ImageDraw.Draw(image)
|
|
font = ImageFont.truetype(font_path, font_size)
|
|
|
|
# Рисование символов
|
|
for idx, char_code in enumerate(all_chars):
|
|
x = (idx % chars_per_row) * grid_size
|
|
y = (idx // chars_per_row) * grid_size
|
|
draw.text((x + 1, y + 1), chr(char_code), font=font, fill=0)
|
|
|
|
# Сохранение в BMP
|
|
image.save("font_grid_with_cyrillic.bmp")
|
|
print("Шрифт с кириллицей сохранён в font_grid_with_cyrillic.bmp")
|