Я сделал собственный шрифт для рукописного ввода и экспортировал его в файл .ttf. Служба, которую я использовал, Caligriphr, позволяет использовать альтернативные глифы для каждого символа. Когда я печатаю шрифтом в блокноте, альтернативные глифы отображаются правильно. Однако когда я пишу текст на изображение, используя PIL с пользовательским шрифтом, для каждого символа используется только один глиф. Ниже мой код для записи на изображении:
body = ""
with open('body.txt') as fin:
ls = fin.readlines()
for l in ls:
words = l.split(' ')
for word in words:
double = random.randint(1,2) == 2
if(double):
body += ' ' + word
else:
body += ' ' + word
image = Image.open('graph.jpg').convert("RGBA")
text = Image.new('RGBA', image.size, (255,255,255,0))
font = ImageFont.FreeTypeFont('Graphite.ttf', 100)
d = ImageDraw.Draw(text)
d.text(xy=offset, text=body, fill = (26,29,32, 230), font=font)
tilt = random.random() * 2
slt = text.rotate(tilt, expand=1)
sx, sy = slt.size
image.paste(slt, (0,0, sx, sy), slt)
image.save('sample.png')
Редактировать: показ кода для построения строки тела
Любая помощь будет принята с благодарностью.
Альтернативные символы, отображаемые в блокноте
Выход PIL без использования альтернативных символов