E
А как можно сделать красивым этот код?
name = 'Вася'Вычисляем размеры текста, потом создаем графическую плашку с этим текстом. Проблема в том, что для вычисления размера приходится сначала впустую создать Image и Draw(Image).
background_color = (0xFF, 0xFF, 0xFF, 0x00)
font_color = (0x00, 0x00, 0x00, 0xFF)
from PIL import Image, ImageDraw, ImageFont
font = ImageFont.truetype('DejaVuSerif.ttf', 30)
width, height = 600, 30
i = Image.new('RGBA', (width, height), background_color)
d = ImageDraw.Draw(i)
x, y = d.textsize(name, font=font)
del(i)
width, height = 20 + x, 20 + y
i = Image.new('RGBA', (width, height), background_color)
d = ImageDraw.Draw(i)
x, y = d.textsize(name, font=font)
d.text(((width - x) // 2, (height - y) // 2), name, font_color, font=font)
i.save('%s.png' % name)