Código PHP:
function marca_de_agua($imagen,$ancho,$alto){
$img_ma_info=getimagesize(MARCA_DE_AGUA);
$posicionx=($ancho-$img_ma_info[0]-5);
$posiciony=($alto-$img_ma_info[1]-5);
$marca_de_agua=imagecreatefrompng(MARCA_DE_AGUA);
imagestring($imagen,8,3,5,DOMINIO.' - '.NOMBRE,imagecolorallocate($imagen,255,0,0));
imagecopy($imagen,$marca_de_agua,$posicionx,$posiciony,0,0,$img_ma_info[0],$img_ma_info[1]);
}
Yo utilizo esto, donde MARCA_DE_AGUA es un archivo PNG con transparencias.
Espero que te sirva.