[Image-SIG] Font Support in PIL (more info)
Jesse Montrose
jesse@spine.com
Sun, 5 Aug 2001 00:33:13 -0700
i should have thought to do this test before. it shows a ' ' as zero
width! unless anyone has any better ideas, i'm going to try to figure
out the .pil format and hexedit the width to something reasonable.
jaw portrait> python
Python 1.5.2 (#0, Apr 10 2001, 10:03:44) [GCC 2.95.3 20010219
(prerelease)] on linux2
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>> import Image
>>> import ImageFont
>>> import ImageDraw
>>> font = ImageFont.load("font/Verdana_12_72.pil")
>>> font.getsize(' ')
(0, 14)
>>> font.getsize(' ')
(0, 14)
>>> font.getsize('.')
(4, 14)
>>> font.getsize('abc')
(22, 14)
On Sat, Aug 04, 2001 at 10:33:05PM -0700, Jesse Montrose wrote:
> thanks for putting up those fonts, Kevin!
>
> i'm having a "missing space" problem that i'm assuming someone else
> has run into with font rendering. i've posted the problem output at
>
> http://www.spine.com/fontproblem.gif
>
> and the script used to generate it is below. it renders the string
> "one two three" in five different fonts, and three sizes per font.
>
> as you can see from the picture, many of the output lines are
> completely missing their spaces.
>
> any tips?
>
>
>
>
> #!/usr/bin/python
>
> import Image, ImageDraw, ImageFont
> import types
>
> script = [
> (255,0,0),
> "font/Garamond_14_72.pil",
> "font/Verdana_12_72.pil",
> "font/Arial_14_72.pil",
> "font/Bookman Old Style_14_72.pil",
> "font/Courier New_14_72.pil",
> (0,255,0),
> "font/Garamond_24_72.pil",
> "font/Verdana_22_72.pil",
> "font/Arial_24_72.pil",
> "font/Bookman Old Style_24_72.pil",
> "font/Courier New_24_72.pil",
> (0,0,255),
> "font/Garamond_48_72.pil",
> "font/Verdana_48_72.pil",
> "font/Arial_48_72.pil",
> "font/Bookman Old Style_48_72.pil",
> "font/Courier New_48_72.pil"]
>
> colors = [(255,0,0), (0,255,0), (0,0,255)]
>
> im = Image.new('RGB', (400, 600))
> draw = ImageDraw.Draw(im)
>
> testString = "one two three"
> colorIndex = -1
>
> top = 0
> fontName = 0
> color = 0
> for elem in script:
> if type(elem) == types.TupleType:
> color = elem
> continue
> else:
> fontName = elem
> font = ImageFont.load (fontName)
> draw.setfont(font)
> draw.text ((10,top),
> testString, fill=color)
> top = top + font.getsize(testString)[1]
>
> del draw
>
> im.save("fontproblem.gif")
>
>
> On Thu, Jun 22, 2000 at 08:01:16AM -0700, kcazabon wrote:
> > Hi Loris;
> >
> > I while back I created a whole bunch of font sets for PIL because I was
> > having the same problems. One of the other users (Piers Lauder) kindly
> > provided FTP space for them, as they're quite large (even when zipped).
> >
> > They're available at the following address if you'd like to download
> > "pre-PIL-ified" fonts.
> >
> > http://www.cs.usyd.edu.au/~piers/python/pilfonts.html
> >
> > Kevin Cazabon
> >
> >
> > From: "Loris Caren" <loris@caren.demon.co.uk>
> > To: <image-sig@python.org>
> > Sent: Wednesday, June 21, 2000 4:20 AM
> > Subject: [Image-SIG] Font Support in PIL
> >
> >
> > > Hello,
> > > I'm try to create some fonts that can be read by the ImageFont library
> > using
> > > bdf2pil. However it dies in font2image saying that Image.core.hex_decoder
> > > should have two args rather than the one provided.
> > > I've tried greping for hex_decoder in the library but dont get any hits.
> > Can
> > > anybody else get this to work? Without it I can't see how that I can
> > write
> > > text using the ImageDraw library.
> > >
> > > _______________________________________________
> > > Image-SIG maillist - Image-SIG@python.org
> > > http://www.python.org/mailman/listinfo/image-sig
> >
> >
>
--
pgp 14 4b eb f7 62 13 2e c1 jesse montrose
print 31 95 e6 82 25 64 7b 43 www.spine.com