I made this simple bit of watermarking code for the images on Westlake Eletronic Supply‘s website some time ago to help eliminate the copying of product images from their website. This is a little stripped down but you get the idea, the victim variable is to be created using GET parameters after being validated.
Show the code
<?php
header('Content-type: image/jpeg');
$victim = ini_get('doc_root') . 'images/picturetobewatermarked.jpg';
$watermark = ini_get('doc_root') . 'images/watermark.png';
$size = getimagesize($victim);
if ($size[2] == 1) $image = imagecreatefromgif($victim);
if ($size[2] == 2) $image = imagecreatefromjpeg($victim);
if ($size[2] == 3) $image = imagecreatefrompng($victim);
$watermark = imagecreatefrompng($watermark);
$white = imageColorAllocate ($watermark, 255, 255, 255);
imagecolortransparent($watermark,$white);
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
$dest_x = round(($size[0] / 2) - ($watermark_width / 2));
$dest_y = round(($size[1] / 2) - ($watermark_height / 2));
$dest_x = 1;$dest_y = 1;
imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, 40);
if ($size[2] == 1) imagegif($image);
if ($size[2] == 2) imagejpeg($image);
if ($size[2] == 3) imagepng($image);
imagedestroy($image);
if ($watermark) imagedestroy($watermark);
?>