Python成像库,ImageFont IOError

时间:2016-06-17 23:07:28

标签: python raspberry-pi python-imaging-library

我的python-FotoBox-Script在我的Ubuntu labtop上工作得非常好,但是在运行Raspbian的Raspberry-Pi上,脚本遇到了以下问题:

pi@raspberrypi:~/Desktop/FotoBox $ python PythonCollage_31.py
    Traceback (most recent call last):
      File "PythonCollage_31.py", line 49, in <module>
        font = ImageFont.truetype("/usr/share/fonts/truetype/msttcorefonts/Comic_Sans_MS.ttf", 80, 0, 'unic')
      File "/usr/lib/python2.7/dist-packages/PIL/ImageFont.py", line 240, in truetype
        return FreeTypeFont(font, size, index, encoding)
      File "/usr/lib/python2.7/dist-packages/PIL/ImageFont.py", line 137, in __init__
        self.font = core.getfont(font, size, index, encoding)
    IOError: unknown file format

我还尝试使用其他代码行创建字体对象:

font = ImageFont.truetype("/usr/share/fonts/truetype/msttcorefonts/Comic_Sans_MS.ttf", 80)

但结果相同。

确实存在带有字体的文件!

pi@raspberrypi:~/Desktop/FotoBox $ ls -l /usr/share/fonts/truetype/msttcorefonts/
insgesamt 4
-rw-r--r-- 1 root root 128 Jun 17 22:04 Comic_Sans_MS.ttf

1 个答案:

答案 0 :(得分:0)

ImageFont.truetype的正确语法是:

ImageFont.truetype(file, size, encoding=value)

所以,如果你将encoding =添加到你的第四个参数的开头,使用“”而不是'',并删除第三个参数,它应该是这样的:

ImageFont.truetype("/usr/share/fonts/truetype/msttcorefonts/Comic_Sans_MS.ttf", 80,
encoding="unic")

这对我有用。