2010-01-31 38 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遠)在錯誤的字體指定字體。