You might want to have a look at the
CPAN modules that fall under the
Imager namespace. Imager.pm is the base class, and from there look at
Imager::Filters. This module allows you to manipulate images in many ways, including adding "watermarks." Watermarks may be of programmer-definable strength, and can be put at any location in the image.
Also see, Imager::Font. Together with Imager::Filters, you could probably put a text graphic anywhere you want within another graphic image.
I hope this helps.