Как написать многострочный текст на подушке?Python

Программы на Python
Anonymous
Как написать многострочный текст на подушке?

Сообщение Anonymous »


Я пытаюсь преобразовать один длинный текст в многострочный. Я написал некоторый код, и он в основном работает. Но у меня есть некоторые проблемы с расчетом ширины линии. Потому что очереди становятся все короче и короче. Вероятно, вызвано lastCalculatedWidth или resultTextLength или обоими. Я пробовал много вещей, но я очень запутался и хочу решить эту проблему как можно скорее.
[img]https://i .stack.imgur.com/BEcmh.png [/img]

text = "Lorem ipsum Pain сидит с, consectetur adipiscing элита. Donec augue leo, pulvinar maaaıs sagittis сидит с грустной маврикийской детской. С mauritius quam, faucibus id pretium нет, у Вариуса есть лев. result_text = "" messageBreakLineIndexes = [] рассчитанные слова = 0 messageLineWidth = draw.textLength (текст, шрифт = шрифт) результатТекстДлинга = 0 последнийCalculatedWidth = 0 расчетПереключатель = Истина в то время как вычисляемые слова < len(text.split()): result_text += text.split()[calculatedWords] + resultTextLength += draw.textLength(text.split() [calculatedWords], шрифт = шрифт); если resultTextLength > img.width - 60: result_text = result_text.rstrip (); result_text = result_text.rsplit(" ", 1)[0] messageBreakLineIndexes.append(len(result_text)); рассчитанные слова -= resultTextLength -= draw.textLength (result_text.rstrip(), шрифт = шрифт) -lastCalculatedWidth LastCalculatedWidth = draw.textlength(result_text.rstrip(), шрифт = шрифт); рассчитанные слова += 1 печать (сообщениеBreakLineIndexes). for in in range(len(messageBreakLineIndexes)): index = messageBreakLineIndexes . текст_результата = текст_результата[:индекс+i] + "\n" + текст_результата[индекс+i:] draw.text(позиция_текста, текст_результата, шрифт=шрифт, заливка=цвет_текста);

Вернуться в «Python»