Как вывести с помощью Python Pillow эмодзи на фото?
Если добавить эмодзи в текст, то оно отображается как белый смайлик, а не полноценное эмодзи.
Вот часть кода:
drawer.text((65, 56), f"{hour}:{minute}", (255,255,255), font=font)
font = ImageFont.truetype("C:/Users/xxx/AppData/Local/Microsoft/Windows/Fonts/SF-Pro-Display-Semibold.otf", 49)
Помогите найти решение, чтобы на картинку выводилось эмодзи.
Ответы (1 шт):
Автор решения: Amgarak
→ Ссылка
Нужно только убедится, что выбранный шрифт поддерживает эмодзи. Я проверял через фотошоп и те шрифты что показывают вместо смайла - [], [?],[X] не подходят.
from PIL import Image, ImageDraw, ImageFont
# Создаем изображение
image = Image.new("RGB", (550, 100), (0, 0, 0))
drawer = ImageDraw.Draw(image)
# Шрифт с поддержкой эмодзи
font_size = 49
font_path = "C:/Windows/Fonts/seguisym.ttf"
font = ImageFont.truetype(font_path, font_size)
# Текст с эмодзи
emoji_text = "\U0001F60A 05:02 i don't sleep! ?"
#Рисуем
drawer.text((10, 10), emoji_text, (255, 255, 255), font=font)
# Сохраняем изображение
image.save("out_image.png")
Рисоваться они будут точно так же, как выглядят в текстовом редакторе, а не цветными как в фотошопе и т.д: 
Так что если вы хотите помесить цветной смайлик поверх вашего изображение, то сперва вам нужно подготовить .png

from PIL import Image
# Открываем основное изображение
background_path = "output_image.png"
background = Image.open(background_path)
# Открываем изображение, которое вы хотите поместить поверх основного
overlay_path = "Без имени-1.png"
overlay = Image.open(overlay_path)
# Устанавливаем координаты для размещения изображения
position = (10, 10)
# Накладываем изображение с учетом альфа-канала
background.paste(overlay, position, overlay)
# Сохраняем результат
background.save("output_overlay.jpg")


