ImageDraw из библиотеки PIL не работает для некоторых символов синхала - PullRequest
0 голосов
/ 30 сентября 2019

Я генерирую текстовые изображения с использованием ImageDraw. Я использую шрифт сингальского юникода;Nirmala.ttf для этого. Он отлично работает для большинства персонажей. Но для некоторых персонажей он рисует неправильно. Вот код Python.

from PIL import Image, ImageDraw, ImageFont
import random
import string
import codecs
import os
f = codecs.open("batches.meta.txt", encoding="utf-8")
lines = f.read().splitlines()
print(lines)
for i in range(0,len(lines)):       
    line= lines[i]
    if(not os.path.exists('training-images/'+str(i))):
        os.mkdir('training-images/'+str(i)) 
    textlength = len(line)  
    img = Image.new('RGB', (28*textlength+20, 70), color = (255, 255, 255))  
    fnt = ImageFont.truetype('/fonttype/Nirmala.ttf', 30)
    d = ImageDraw.Draw(img)
    d.text((10,10), line, font=fnt, fill=(0, 0, 0))  
    img.save('training-images/'+str(i)+'/'+line+'.png') 
f.close()

Вот изображение этого. Пример текстового изображения

...