Проблемы с символами в Pillow

Этот код вставляет текст в фото. Проблема заключается в том, что вместо подобных символов смайлики и необычные шрифты '♧♧ ???????? ♧♧' у меня на фото выводятся вместо текста квадратики. Сложности связаны из-за шрифтов или/и юникода. Пробовал множество шрифтов и ничего не меняется.

from PIL import Image, ImageFont, ImageDraw

img = Image.open("2.png")

    # Получаем размеры изображения
    width, height = img.size

    # Создаем объект для рисования на изображении
    draw = ImageDraw.Draw(img)

    # Выбираем шрифт и размер
    font = ImageFont.truetype("NotoColorEmoji-Regular.ttf", size=17, index=0)

    x = 66
    y = 206
    for name in player_names:
        draw.text((x, y), name, font=font, fill=(255, 255, 255))
        y += 38  # вертикальный отступ в 37 пикселей

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

Автор решения: strawdog

во-первых, вы должны быть уверены, что шрифты ваши действительно поддерживают unicode, во-вторых, текст должен быть интерпретируемым в пределах выбранного шрифта - вы, например, пытаетесь одним шрифтом напечатать символы, которых в нем нет, потому что они набраны другим шрифтом. Ну и третье - текс должен быть тоже в unicode:

from PIL import Image, ImageFont, ImageDraw

img = Image.new(mode="RGB", size=(200, 100), color = (255, 255, 255))
draw = ImageDraw.Draw(img)
font = ImageFont.truetype("fonts/DejaVuSans.ttf", size=17, index=0)

x = 50
y = 50
draw.text((x, y), u"♧♧ Привет ♧♧", font=font, fill=(0, 0, 0))

img.save("22.png")

введите сюда описание изображения

→ Ссылка