Another option is the up and coming
Imager which is apparently all the rage these days (or so I've heard). It does all sorts of fancy tricks and doesn't require an external library to do the graphical manipulations (only requiring the libraries associated with the various image formats) and from the looks of it fulfils your requirements. Nice.
HTH
_________
broquaint