2010-01-31 71 views
3

我正在尝试使用Image模块来制作其中包含希伯来字体的位图。当从shell打印(空闲)时,我设法打印希伯来文,但是当试图将文本绘制到位图时,它会绘制一些ascii文字。使用图像模块(python)将希伯来语文本绘制为图像

这是代码:

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() 

任何帮助将是非常赞赏。

回答

1

尝试a = u"אריאל"

如果不成功,请尝试PyCairo。它具有先进的排版处理功能,效果更好。

1

This site提到要绘制中文文本,他们必须指定该字符串是unicode,所以你应该这样做,例如,

a = u"אריאל" #like this 
a = unicode("אריאל", "UTF-8") #or like this 

他们还指定了一种字体。希伯来文有适合吗?例如: -

font = ImageFont.truetype('simsun.ttc',24) 

,然后绘制文本时,例如:

d.text((0,0), a, font=font) 

我觉得你的代码绘制的ASCII字符串(和希伯来语是从ASCII faaaaar远)在错误的字体指定字体。