Changes for version 1.53 - 2005-01-05

  • => Added a new option 'backend' to import(). With this option you can now include other back-ends:
    • use GD::SecurityImage backend => 'Magick';
    • will load the GD::SecurityImage::Magick for example. If you wrote a backend for GD::SecurityImage, you can now combine your back-end with GD::SecurityImage. Like, if you created a Imager back-end named 'GD::SecurityImage::Imager', you can load it like this:
      • use GD::SecurityImage backend => 'Imager';
    • No one requested this kind of functionality (yet), but I'm adding it anyway. And *NO* I will not create an Imager or any other backend myself (at least not in the near future). I' m already supporting two different interfaces.
    • Probably cconvert() also needs a fix to support such a thing. I'll deal with that later.
    • NOT DOCUMENTED
  • => If you have loaded Image::Magick outside and then you call GD::SecurityImage with the GD backend (or simply use it) your code dies with a weird error. Since it setups the interface for Image::Magick, but you didn't select Image::Magick as the backend. For example, this simple code dies if you are using 1.52 and below:
    • use Image::Magick; use GD::SecurityImage; GD::SecurityImage->new->create;
    • This bug cought by Dave Rolsky.
  • => New class variable $BACKEND added to deal with this bug. The backend is now completely checked and set in import(). => Also, the module is now checking whether you called import() or not. If you didn't, it'll die (it actually checks if $BACKEND has a value). => Added a new test 'backend.t' to check these.

Modules

Security image (captcha) generator.
GD backend for GD::SecurityImage.
Image::Magick backend for GD::SecurityImage.
Drawing styles for GD::SecurityImage.

Examples