向文本绘制文本时出现字体错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了向文本绘制文本时出现字体错误相关的知识,希望对你有一定的参考价值。

我正在写一个脚本,从我的学校级网站上取得我的成绩,并将成绩绘制到图像上并将其保存为我的背景,当我将图像绘制到图像上时我正在尝试更改字体但是我得到了一个错误

这是我正在尝试的代码:

font = ImageFont.load('C:WINDOWSFontsCALIBRI.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:Python27Project.py", line 45, in <module>
     font = ImageFont.load('C:WINDOWSFontsCALIBRI.TTF')
  File "C:Python27libsite-packagesPILImageFont.py", line 193, in load
    f._load_pilfont(filename)
  File "C:Python27libsite-packagesPILImageFont.py", line 91, in _load_pilfont
    raise IOError("cannot find glyph data file")
IOError: cannot find glyph data file

任何人都可以告诉我为什么这不起作用,我该怎么做

答案

load()load_path()函数应仅用于位图字体文件。由于您尝试加载TrueType字体(.ttf),因此应使用truetype()函数。

from PIL import ImageFont
font = ImageFont.truetype(r'C:WINDOWSFontsCALIBRI.TTF')

自发布问题以来,PIL / Pillow库可能已更改,因此建议您查阅您正在使用的库的相应文档。

附注 - 在字符串文字(特别是Windows文件路径)中使用反斜杠时要小心。反斜杠是一个转义字符。例如,' '是一个换行符,而不是两个字符。您应该使用另一个反斜杠('C:\WINDOWS\Fonts\CALIBRI.TTF')转义每个反斜杠或使用“原始”字符串文字来防止反斜杠被解释(r'C:WINDOWSFontsCALIBRI.TTF')。

如果有疑问,print()它。

另一答案

我遇到了这个错误,我相信这是因为你安装的PIL是在没有libfreetype的情况下编译的。要得到这个,你必须安装freetype2然后编译PIL。看到

Python: The _imagingft C module is not installed

或者你可以尝试Pillow,它是PIL库的更新分支

https://pypi.python.org/pypi/Pillow/2.0.0

以上是关于向文本绘制文本时出现字体错误的主要内容,如果未能解决你的问题,请参考以下文章

使用ggplot将文本制作为新罗马字体时出现问题

在 Java 中解密文本时出现一些错误

在 Exponent react-native 框架中使用 ShoutemUI/TextInput 组件时出现字体加载错误

winform,自定义文本框控件 实现文本框验证加水印功能

为 DT 输出渲染文本输入时出现 R 闪亮错误

使用 C# windows 窗体向 Ms Access 数据库插入新记录时出现语法错误