Как правильно разместить текст с помощью Pillow?
Как правильно разместить текст с помощью Pillow? Имею функцию, которая размещает текст на изображении:
def write_background(text):
font = ImageFont.truetype('sources/fonts/Roboto.ttf', size=34)
im = Image.open('sources/background.jpg')
draw_text = ImageDraw.Draw(im)
draw_text.text((0, 0), text, fill='black', font=font)
im.show()
Т.к., Pillow сама не делает перенос строки, я добавляю перенос строки в строку следующим алгоритмом: разбиваю строку по словам, прохожу по списку строк и проверяю переменную, если она больше, чем 200(ширина изображения, куда вставляется текст), то вставляю перенос строки, если меньше, то к переменной добавляю ее предыдущее значение + длину строки умноженную на 34(размер текста в пикселях)
def insert_whitespaces(some_string):
size = 0
result = ''
list_of_strings = some_string.split(' ')
for x in range(len(list_of_strings)):
if size >= 200:
list_of_strings[x] = list_of_strings[x] + '\n'
size = 0
else:
size = size + len(list_of_strings[x]) * 34
result += list_of_strings[x] + ' '
return result
На выходе получаю следующее изображение, как мне правильно оптимизировать алгоритм, чтобы текст корректно вмещался в ширину изображения?
