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(10070);
imagefilledrectangle($stamp0099690x0000FF);
imagefilledrectangle($stamp9990600xFFFFFF);
$im imagecreatefromjpeg('photo.jpeg');
imagestring($stamp52020'libGD'0x0000FF);
imagestring($stamp32040'(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 (transparency) of 50%
imagecopymerge($im$stampimagesx($im) - $sx $marge_rightimagesy($im) - $sy $marge_bottom00imagesx($stamp), imagesy($stamp), 50);

// Save the image to file and free memory
imagepng($im'photo_stamp.png');
imagedestroy($im);

?>
Using imagecopymerge() to create a translucent watermark
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 (another term for transparency). In practice this would be useful in copyright protection as semi-transparent watermarks are hard to remove yet allow viewers to see the image.