Puoi farlo senza usare librerie aggiuntive, puoi farlo in modo nativo così:
Codice PHP:
<?php
$stamp = imagecreatefrompng('stamp.png'); //watermark
$im = imagecreatefromjpeg('photo.jpeg'); /la tua foto
// Imposti i margini del watermark
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);
// Inserisci il watermark calcolando la posizione corretta
imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));
// Stampi il risultato e pulisci la memoria
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>
Fonte: http://php.net/manual/en/image.examples-watermark.php