artshelom: есть куча статей и книг, но преимущественно англоязычных и требующих хорошей математической подготовки. А готовый код вы если и найдёте, то для примитивных задач, типа коллаборативной фильтрации.
danij_com: да, нужен алгоритм подгонки. У меня в одном из проектов было требование чтобы текст любой длинны всегда был в одну строку и выравнивался по вертикале и горизонтали в квадратном изображении. Приходилось изменять размер шрифта так, чтобы весь текст входил. Но чаще приходится вычислять координату верхнего левого угла выводимого текста в блоке, вмещающем текст максимально разрешённой длинны. Можно ещё попробовать сначала добивать строку пробелами с обеих сторон до максимально разрешённой длины, а потом выводить на изображение. Что-то типа:
text = '{:^30}'.format('centered')
draw.text((x, y), text, (0, 0, 0), font=font)
Метод text принимает координаты выводимого текста и шрифт, которым выводить. Для шрифта можно установить размер. Проблема с длинной текста решается алгоритмически. Определитесь с тем, какое поведение программы вам необходимо.
Ingernirated: грубо говоря, одна ассемблерная инструкция - это одна инструкция процессора, а одна Сишная - это 20 процессора. А Java вообще не в инструкции процессора компилируется, а в инструкции виртуальной машины.
Ingernirated: компилятор переводит команды языка в команды процессора. Если вы каким-нибудь редактором откроете exe-файл, буквенных команд в нём не найдёте.