2013-05-07 99 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()出来。

相关问题