Using imagecopymerge to create a translucent watermark

- « Adding watermarks to images using alpha channels

- GD and Image Functions »

- PHP Manual
- Examples
- Using imagecopymerge to create a translucent watermark

## Using imagecopymerge() to create a translucent watermark

Example #1 Using imagecopymerge() to create a translucent watermark

    <?php// Load the stamp and the photo to apply the watermark to$im = imagecreatefromjpeg('photo.jpeg');// First we create our stamp image manually from GD$stamp = imagecreatetruecolor(100, 70);imagefilledrectangle($stamp, 0, 0, 99, 69, 0x0000FF);imagefilledrectangle($stamp, 9, 9, 90, 60, 0xFFFFFF);imagestring($stamp, 5, 20, 20, 'libGD', 0x0000FF);imagestring($stamp, 3, 20, 40, '(c) 2007-9', 0x0000FF);// Set the margins for the stamp and get the height/width of the stamp image$marge_right = 10;$marge_bottom = 10;$sx = imagesx($stamp);$sy = imagesy($stamp);// Merge the stamp onto our photo with an opacity of 50%imagecopymerge($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp), 50);// Save the image to file and free memoryimagepng($im, 'photo_stamp.png');imagedestroy($im);?>

This example uses imagecopymerge() to merge the stamp with our original image. Using this we can set the opacity of our stamp - in our example we've set it to 50% opacity. In practice this would be useful in copyright protection as semi-transparent watermarks are hard to remove yet allow viewers to see the image.