我正在尝试使用Image模块,以便在其中制作带有希伯来字母的位图。 当从shell打印(空闲)时,我设法打印希伯来语,但是当试图将文本绘制到位图时,它会绘制一些ascii字样。
这是代码:
import Image
import ImageDraw
a = "אריאל" #or any other hebrew string
im=Image.new('RGB',(200,200),(100,100,100)) #type file,size,Background color
d=ImageDraw.Draw(im)
d.text((0,0),a) #should draw the string
im.show()
任何帮助都将非常感激。
答案 0 :(得分:1)
尝试a = u"אריאל"
。
如果失败,请尝试PyCairo。它具有先进的排版处理功能,可以更好地工作。
答案 1 :(得分:1)
This site提到要绘制中文文本,他们必须指定字符串是unicode,所以你应该这样做,例如。
a = u"אריאל" #like this
a = unicode("אריאל", "UTF-8") #or like this
他们还指定了一种字体。希伯来语是否合适? e.g:
font = ImageFont.truetype('simsun.ttc',24)
然后在绘制文本时指定该字体,例如:
d.text( (0,0), a, font=font)
我认为你的代码是用错误的字体绘制一个ascii字符串(而希伯来语是远离ascii的faaaaar)。