I've been playing with PIL's ImageDraw to create images from text. This isn't anything new but I thought I'd combine it with some Web 2.0 technology. The page is marked up like before in valid and accessible XHTML, then a javascript kicks in to automatically replace the plain text headers with image generated ones.

The benefit of this is that the image replacement stuff happens AFTER the page has been loaded for snappier response times. The page looks better with image headlines because you're not font-limited there (see apple.com for example). And most importantly: you want images for headlines but you also want to be found on Google.

Go to the demo page to see it in action.

This is of course only a proof of concept demo. If you do this properly you'll want to do two things properly unlike what I've done:

  • your own proper (and nice looking) TrueType font file
  • cache the image properly so that any text is only generated once

The script that generates this image is very fast. On this machine it takes about 0.02 seconds and with run-once-only caching in place that's no time at all.

Comments

Post your own comment
Tim Parkin

It's a very cool idea, we've used a similar technique to create the left hand navigation of our website http://pollenation.net. This uses pil and javascript and adds events for the rollovers too. We did try the sifr flash image replacement but flash didn't play particularly niceley. Be wary that when using onload, all of your images and stylesheets and other assets will load before it's triggered.

Hans Then

Hi, can you also give an example of the required python code? I was looking for something like this in a Zope environment and your's is the first I found

Tim Knapp

Me too please Peter! I would like to have some e.g. code as I'm developing a site in Japanese and the available Japanese fonts on most Windoze boxes is very slim - so I'd love to have my Japanese font embedded in the page (if this isn't possible with this technique then forgive my ignorance).

Hans Then

Hi Peter,
I have used your code in http://www.schaakhuis.nl. It a Dutch site for my chessclub. It's not very pretty perhaps, but the design will improve. Thanks

Jeff

hi, where's the code for this please?

Matey

Hi Pete; Thanks for sharing the info. I was looking to find how to build a Flash or HTML demo (animation) for some software product using Zope/Plone in Python and put it on our web site.

Your email will never ever be published.

Previous:
Google and Python code February 22, 2006 Python
Next:
Apple Store or Micro Anvika February 26, 2006
Related by category:
How I run standalone Python in 2025 January 14, 2025 Python
How to resolve a git conflict in poetry.lock February 7, 2020 Python
get in JavaScript is the same as property in Python February 13, 2025 Python
Best practice with retries with requests April 19, 2017 Python
Related by keyword:
What I hate about PIL and Image in Python October 19, 2009 Python
ImageMagick conversion comparison December 9, 2006 Linux
Best Image Replacement Technique guide October 7, 2005 Web development