Как правильно разместить текст с помощью 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

На выходе получаю следующее изображение, как мне правильно оптимизировать алгоритм, чтобы текст корректно вмещался в ширину изображения?

img


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