Search code examples
bitmaptruetype

Dump characters (glyphs) from TrueType font (TTF) into bitmaps


I have a custom TrueType font (TTF) that consists of a bunch of icons, which I'd like to render as individual bitmaps (GIF, PNG, whatever) for use on the Web. You'd think this is a simple task, but apparently not? There is a huge slew of TTF-related software here:

http://cg.scs.carleton.ca/~luc/ttsoftware.html

But it's all varying levels of "not quite what I want", broken links and/or hard to impossible to compile on a modern Ubuntu box -- eg. dumpglyphs (C++) and ttfgif (C) both fail to compile due to obscure missing dependencies. Any ideas?


Solution

  • Try PIL's ImageDraw and ImageFont module

    Code would be something like this

    import Image, ImageFont, ImageDraw
    
    im = Image.new("RGB", (800, 600))
    
    draw = ImageDraw.Draw(im)
    
    # use a truetype font
    font = ImageFont.truetype("path/to/font/Arial.ttf", 30)
    
    draw.text((0, 0), "ABCDEFGHIJKLMNOPQRSTUVWXYZ", font=font)
    
    # remove unneccessory whitespaces if needed
    im=im.crop(im.getbbox())
    
    # write into file
    im.save("img.png")