2013-05-07 100 views
2

我正在編寫一個腳本,需要從我的學校成績網站上取得成績,並將成績繪製到圖像上並將其保存爲我的背景,並且我試圖更改字體繪製文本到圖像,但我得到一個錯誤將文字繪製爲圖像時出現字體錯誤

這是我想要的代碼:

font = ImageFont.load('C:\WINDOWS\Fonts\CALIBRI.TTF') 
img = Image.open('bg.bmp') 
draw = ImageDraw.Draw(img) 

now = datetime.datetime.now() 


draw.text((625, 425),'      CURRENT GRADES') 
draw.text((625, 475), 'Period 1: Geography -----------------------------{0}'.format(a),("blue"),(font)) 
draw.text((625, 525), 'Period 2: Francais-------------------------------{0}'.format(b),("red"),(font)) 
draw.text((625, 575), 'Period 3: Science--------------------------------{0}'.format(c),("orange"),(font)) 
draw.text((625, 625), 'Period 4: P.E------------------------------------{0}'.format(d),("blue"),(font)) 
draw.text((625, 675), 'Period 5: Algebra 9------------------------------{0}'.format(e),("red"),(font)) 
draw.text((625, 725), 'Period 6: LA-------------------------------------{0}'.format(f),("orange"),(font)) 
draw.text((625, 775), 'Last Updated: {0}'.format(now)) 

img.save('mod_bg.bmp') 

,但是當我這樣做我得到這個錯誤信息:

Traceback (most recent call last): 
    File "C:\Python27\Project.py", line 45, in <module> 
    font = ImageFont.load('C:\WINDOWS\Fonts\CALIBRI.TTF') 
    File "C:\Python27\lib\site-packages\PIL\ImageFont.py", line 193, in load 
    f._load_pilfont(filename) 
    File "C:\Python27\lib\site-packages\PIL\ImageFont.py", line 91, in _load_pilfont 
    raise IOError("cannot find glyph data file") 
IOError: cannot find glyph data file 

誰能告訴我wh Ÿ這不工作,我應該做什麼

回答

1

load()load_path()功能只能用於字體文件的更新叉。由於您試圖加載TrueType字體(.ttf),因此應使用truetype()函數。

from PIL import ImageFont 
font = ImageFont.truetype(r'C:\WINDOWS\Fonts\CALIBRI.TTF') 

的PIL /枕頭庫,因爲你的問題的帖子可能已經改變,所以我建議你諮詢你正在使用的庫中的相應文檔。

備註 - 在字符串文字(特別是Windows文件路徑)中使用反斜槓時要小心。反斜槓是一個轉義字符。例如,'\n'是單個換行符,而不是兩個字符。您應該使用另一個反斜槓('C:\\WINDOWS\\Fonts\\CALIBRI.TTF')或使用「原始」字符串文字來避免反斜槓被解釋(r'C:\WINDOWS\Fonts\CALIBRI.TTF')。

當有疑問時,print()出來。

相關問題