Как я могу получить правильный вывод текста Японии в изображение с помощью PIL? - PullRequest
1 голос
/ 14 октября 2019

У меня был этот код, который дает png-файл, содержащий базовую переменную text2write.

# -*- coding: utf-8 -*-
# text 2 img

from PIL import Image, ImageDraw, ImageFont

bg={
'white':(255, 255, 255),
'black':(0,0,0),
'black':'black',
'grey':(125,125,125)
}

ftsize=30
# text2write
# 見五口
text=u"見五口"

# dynamic bg size by text size
bgsize=(int((ftsize*len(text))/2+ftsize),ftsize*2) #x,y

img = Image.new('RGB', bgsize, color = bg['grey'])
# usethis if py2
fnt = ImageFont.truetype('/home/user/.fonts/arial.ttf', ftsize)
# fnt = "arial"
d = ImageDraw.Draw(img)
d.text((10,10), text,
font=fnt, fill=bg['black'])

img.save('output.png')

дает этот вывод . Я ожидаю shows the 口 чарс шоу в PNG.

Ответы [ 2 ]

0 голосов
/ 14 октября 2019

шрифт не поддерживает Unicode, хотя. Используйте Conda200 вместо этого, он работает

fnt = ImageFont.truetype('/home/user/.local/share/fonts/CODE2000.TTF', ftsize)
0 голосов
/ 14 октября 2019

Попробуйте с этим, когда вы поместите текст на изображение

text.encode("utf-8")

Edit2

fnt=ImageFont.truetype("/Library/Fonts/Arial Unicode.ttf",14)
draw.text((50, 50), text, font=font)
...