| CPAN Ratings (Gamma) Reviews by David Wojtowicz | |
| Home | Search | About | Login |
RSS | Module Info | Add a review of
7 out of 7 found this review helpful:
I've looked at pretty much every image manipulation extension to Perl that I could find on CPAN. For doing basic operations like opening an image, cropping it and saving it back, it seemed to be among the most straightforward of the bunch. Thus I started using it for my latest project.
I was at first disappointed to discover that I couldn't do something I somehow assumed there would be a function for (I needed to replace one color in an image with another) and almost gave up on it, until I discovered Imager::Transform2().
It's rather complex to understand at first, and it may take a day or so to figure out, but wow... the things you can do with it once you learn how it works. You can write simple or complex expressions that are applied to every pixel in an image... but unlike other interfaces where you fetch one pixel at a time, do something with it in perl, and then put it back (which can be pretty slow for a large image), it internally compiles your expression into virtual machine code which executes as speed comparable with custom C routines. However, you don't need to write a whole XS module and compile it and try to distribute it with your project. It's just a line of perl code with the expression in it that you can dynamically build in perl if necessary. Documentation about it could be a bit clearer in places.
Imager::Transform2 is amazing to me and will allow me to do most things I could need if builtin functions don't already exist.
Other than that, the file support could be beefed up some to support more formats, which I guess would be fairly straightforward. Also PNG files written seem to be larger than the originals even if you just read it in and write it out, so some compression setting is probably needed there by default.
Overall, I think I've found a keeper.
David Wojtowicz - 2007-09-08 11:55:23
Was this review helpful to you?
Yes
No
|
Perl.org sites
: bugs
| dev
| history
| jobs
| learn
| lists
| use
Site Information and Contacts |
|