[Skip top navbar]
Andrew Gregory's Web Pages
This is a Perl script that generates GIF images of short text messages:
It's main use would be to protect forms from automated submission. For example, guestbooks, forum registration, mailing list subscriptions, etc.
The script has no external dependencies and does not utilize the LZW compression algorithm, thereby eliminating any possible patent issues. The generated images are therefore uncompressed.
This work is licensed under a Creative Commons License.
Around late September, early October of 2003, the developers of the YaBB bulletin board (forum) software were testing a new board registration system. One of the new features was a system to stop automatic registration of new users onto the forum. The implementation they were testing used a script to generate a text message image. Each 'pixel' in the image was a separate image file! As you can imagine, the resulting HTML code was huge, plus the image tended to break up in some browsers, rendering the message unreadable.
I realised this could be solved by turning all the little images into a single image. The problem was that the forum software code must be pure Perl, using little, if any, external modules to maximize cross-platform operability. The compression algorithm used in GIF files is quite complicated and normally requires the use of at least a compiled program to work at acceptable speeds. A pure Perl implementation of the compression algorithm didn't seem to be practical.
Many years ago I had developed a C library to encode and decode GIF images. From that experience I knew it was possible to bypass the compression algorithm and produce working GIF files that were uncompressed. That was much simpler and could be done in pure Perl. This script was born!
YaBB is a web forum system written purely in Perl. If you want to run a web forum, but don't have database support (like MySql) available, then YaBB is the best solution around. It's full-featured, has good performance, and is very simple to set up and administer. Check it out (even if you do have database support).
Apple Computer Inc. for the Apple IIe ROM character set. Used without permission (but I'm sure they won't mind).
ImageMagick - A comprehensive library available for a wide variety of languages and platforms. Much more powerful than my script, but only useful if you can install software on your web server.