2011/1/10 Thomas Larsen Wessel <[email protected]>: > People are telling me that PIL supports unicode strings, does it? And if > yes, why does the following not work: > > import ImageFont, Image, ImageDraw > s = u'\u0623\u0636\u0641' > im = Image.new('RGB', (200,200)) > draw = ImageDraw.Draw(im) > draw.text((40,40), s) #fails > > It results in the following exception: > > Traceback (most recent call last): > File "buffer.py", line 9, in <module> > draw.text((40,40), s) #fails > File "/usr/lib/python2.6/dist-packages/PIL/ImageDraw.py", line 267, in > text > mask = font.getmask(text, self.fontmode) > UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: > ordinal not in range(128) > > So how, do I put this unicode string on the canvas?
You'll need a font that supports Unicode, which the crappy default bitmap font doesn't. Use the ImageFont module to load a suitable TrueType font. </F> _______________________________________________ Image-SIG maillist - [email protected] http://mail.python.org/mailman/listinfo/image-sig
