[Image-SIG] IOError: unknown freetype error - occurs with large amounts of text

Andy Theuninck gohanman at gmail.com
Thu Jun 13 21:09:29 CEST 2013


I have a method that takes a list of strings, a width, and a height and
draws them using PIL. For small to medium lists this works perfectly. For
large lists it crashes with this rather opaque exception:

Traceback (most recent call last):
  File "square-code.py", line 252, in <module>
    obj.main(sys.argv[1:])
  File "square-code.py", line 98, in main
    self.render(lines, self.width, self.height)
  File "square-code.py", line 109, in render
    draw.text((x,y),line,font=font,fill=(0,0,0))
  File "/usr/lib64/python2.6/site-packages/PIL/ImageDraw.py", line 263, in
text
    mask, offset = font.getmask2(text, self.fontmode)
  File "/usr/lib64/python2.6/site-packages/PIL/ImageFont.py", line 151, in
getmask2
    self.font.render(text, im.id, mode=="1")
IOError: unknown freetype error

I've tried a couple different fonts and that doesn't make much difference.
Image size also doesn't appear to matter. For example, with a 2600x2000
image if I write ~250 lines with ~650 characters each it works fine (font
size 6). If I try to write ~950 lines with ~1300 characters each (font size
2) I get the crash above. I'd appreciate any insight into what might be
going wrong, things I can do differently, or how to debug the problem. My
method looks like this:

        def render(self, lines, width, height):
                im = Image.new('RGB',(width,height),(0xff,0xff,0xff))
                draw = ImageDraw.Draw(im)
                font = self.get_font(self.font_size)
                x = 0
                y = 0
                for line in lines:
                        draw.text((x,y),line,font=font,fill=(0,0,0))
                        y += font.getsize(line)[1]
                if os.path.splitext(self.ofile)[1] == '': self.ofile +=
".png"
                im.save(self.ofile)

Python 2.6, PIL 1.1.7
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/image-sig/attachments/20130613/94229215/attachment-0001.html>


More information about the Image-SIG mailing list