Как сгенерировать изображение наложением трех других?
Вот пример того, как можно это сделать на php c помощью Imagick:$image = new Imagick();
$image->readImage('image1.png');

$image2 = new Imagick();
$image2->readImage('image2.png');

$image3 = new Imagick();
$image3->readImage('image3.png');

$image->compositeImage($image2, Imagick::COMPOSITE_OVER, 0, 0);
$image->compositeImage($image3, Imagick::COMPOSITE_OVER, 0, 0);

// сохранить изображение
$image->writeImage('result_image.png');

// или отобразить изображение
header('Content-Type: image/' . $image->getImageFormat());
echo $image;
Такое умеет делать и стандартная gd2 library. Ватермарки накладываются таким же принципом, с той лишь разницей, что там 2 картинки, а у вас три.
Собственно, любой алгоритм наложения ватермарков - скорее всего именно тот фундамент, который вам поможет.