This works fine for none animated images:
$image = new Imagick($file);
$format = strtolower($image->getImageFormat());
$watermark = new Imagick('watermark.png');
$watermark->scaleImage($image->getImageWidth(), $watermark->getImageHeight());
$image->addImage($watermark);
$image->resetIterator();
$combined = $image->appendImages(true);
$data = base64_encode($combined->getImageBlob());
echo '<img src="data:image/' . $format . ';base64,' . $data . '">';
How can I make this work for animated gifs? It just puts every frame below each other and the watermark below that.