使用Image模块(python)将希伯来文本绘制成图像

时间:2010-01-31 14:01:39

标签: python image draw

我正在尝试使用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()

任何帮助都将非常感激。

2 个答案:

答案 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)。