В системе должен стоять пакет ImageMagick
В консоли делается так
$convert image.jpg -gravity SouthEast watermark.png -composite image.jpg
Из php соответственно так
exec('/usr/bin/convert '.$image_path.' -gravity SouthEast '.$watermark_path.' -composite '.$image_path)
Путь к бинарнику может отличатся в разных системах. В данном примере путь корректен для Linux. Для FreeBSD это будет /usr/local/bin/convert.