2017-09-24 1 views
2

La fonction en question:Est-ce que Pillow veut que mes paramètres de texte soient unicode ou des chaînes?

PIL.ImageDraw.Draw.text(xy, text, fill=None, font=None, anchor=None) 

La question est assez standard ... charabia:

enter image description here

En ce moment, je suis en une chaîne (utf-8) au tirage au sort fonction de texte ci-dessus, mais il donne tous ces caractères étranges. Cependant, si je l'imprime simplement, cela montre bien les caractères.

enter image description here

Dois-je passer un objet Unicode à la place?

+0

Avez-vous essayé? –

+1

Code postal pour reproduire le problème. Voyez comment faire un [mcve]. –

Répondre

2

Cela fonctionne correctement sur Python 3.6.2 et 2.7.13 avec oreiller-4.2.1 (les chaînes sont Unicode par défaut dans Python 3.x). Chinois n'a pas affiché avec la police par défaut, mais Arial MS Unicode a travaillé.

#coding:utf8 
from PIL import Image,ImageDraw,ImageFont 
im = Image.new('1',(100,100)) 
draw = ImageDraw.Draw(im) 
font = ImageFont.truetype(font='ARIALUNI.TTF',size=20) 
draw.text((0,0),u'马克','white',font=font) 
im.show() 

Sortie:

enter image description here

+0

Donc Unicode. OK merci – User