Как в PIL добавить несколько шрифтов?

Подскажите как можно задать несколько шрифтов для библиотеки PIL?

from PIL import Image, ImageDraw, ImageFont

# Открываем изображние
imageStatsBg = Image.open("StatsBg.jpeg")
# Задаем шрифт
font = ImageFont.truetype('arialmt.ttf', 25, encoding='unic')
# Открываем для записи
drawer = ImageDraw.Draw(imageStatsBg)
# Пишем текст
drawer.text((50, 100), 'Hello World', font=font, fill='white')

Мне нужно использовать несколько шрифтов в одной записи

Я пробовал через словарь - не получилось

fonts = ['arialmt.ttf', 'times.ttf']

Дело в том, что строка Hello World приходит из базы данных и в этой строке есть emoji и моя задача сделать так, чтобы emoji читались.


Ответы (1 шт):

Автор решения: Andy Pavlov

Нужно создать два или более инстанса с нужными шрифтами, к примеру, в таком варианте:

from PIL import Image, ImageDraw, ImageFont

# Открываем изображние
imageStatsBg = Image.open("StatsBg.jpeg")
# Задаем шрифт
fonts = [ImageFont.truetype(f, 25, encoding='unic') for f in ['arial.ttf', 'times.ttf']]
# Открываем для записи
drawer = ImageDraw.Draw(imageStatsBg)
# Пишем текст
drawer.text((50, 100), 'Hello World Arial', font=fonts[0], fill='black')
drawer.text((50, 150), 'Hello World Times', font=fonts[1], fill='black')
imageStatsBg.save('StatsBg_text.jpg')
→ Ссылка