It appears that the class doesn't support PNG watermarks with an alpha transparency (alpha channel); it expects either a flat image (an image with no transparency) or palletted transparency (where one colour is set to transparent, like a transparent GIF). As written, I'm not sure even palletted transparency would work. There are no calls to imagesavealpha(), for instance, and no tests to see if the watermark image has an alpha channel. (In other words, it's not exactly fully-featured code.) I'll have to play with it a bit -- but it really is bedtime for Bonzo right now. (If you can't wait, you can always look for a better script/class to use.)