Ser*_*ial 4 python fonts python-imaging-library
我正在编写一个脚本,该脚本从我的学校成绩网站上获取我的成绩,并将这些成绩绘制到图像上,然后将其保存为背景,并且我试图在将文本绘制到图像上时更改字体,但是一个错误
这是我正在尝试的代码:
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')
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我收到此错误消息:
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
Run Code Online (Sandbox Code Playgroud)
谁能告诉我为什么这不起作用,我应该怎么做
在load()和load_path()职能应仅用于位图字体文件。由于您尝试加载TrueType字体(.ttf),因此应使用该truetype()函数。
from PIL import ImageFont
font = ImageFont.truetype(r'C:\WINDOWS\Fonts\CALIBRI.TTF')
Run Code Online (Sandbox Code Playgroud)
自发布问题以来,PIL / Pillow库可能已更改,因此建议您查阅所用库的适当文档。
旁注-在字符串文字(特别是Windows文件路径)中使用反斜杠时要小心。反斜杠是转义字符。例如,'\n'是单个换行符,而不是两个字符。您应该使用另一个反斜杠('C:\\WINDOWS\\Fonts\\CALIBRI.TTF')对每个反斜杠进行转义,或者使用“原始”字符串文字来防止反斜杠被解释(r'C:\WINDOWS\Fonts\CALIBRI.TTF')。
如有疑问,请print()解决。
小智 1
我遇到了这个错误,我相信这是因为您安装的 PIL 是在没有 libfreetype 的情况下编译的。为了得到这个你必须安装 freetype2 然后编译 PIL。看
或者,您可以尝试 Pillow,它是 PIL 库的更新分支
https://pypi.python.org/pypi/Pillow/2.0.0
| 归档时间: |
|
| 查看次数: |
2139 次 |
| 最近记录: |