Toprevent quality images being stolen, we can use PHP to watermarkweb-images in popular formats like GIF/PNG/JPEG. We print a transparentgif-image on a jpeg-photo in this tutorial. For best results I prefergif than png, because some png formats require extra functions to printa transparent image. We can convert this script to a batch-watermarkereasily to watermark photo albums/galleries with multiple pictures byputting code in a loop or create a function.
Steps:
- Load both images
- Get size of both images
- Copy watermark to main image
- Print image to screen
PHP functions:
imagecreatefromgif
imagecreatefromjpeg
getimagesize
imagecopymerge
header
imagejpeg
imagedestroy
Watermark image:
Main image:
PHP Code:
<?php $main_img = "Porsche_911_996_Carrera_4S.jpg"; // main big photo / picture $watermark_img = "watermark.gif"; // use GIF or PNG, JPEG has no tranparency support $padding = 3; // distance to border in pixels for watermark image $opacity = 100; // image opacity for transparent watermark $watermark = imagecreatefromgif($watermark_img); // create watermark $image = imagecreatefromjpeg($main_img); // create main graphic if(!$image || !$watermark) die("Error: main image or watermark could not be loaded!"); $watermark_size = getimagesize($watermark_img); $watermark_width = $watermark_size[0]; $watermark_height = $watermark_size[1]; $image_size = getimagesize($main_img); $dest_x = $image_size[0] - $watermark_width - $padding; $dest_y = $image_size[1] - $watermark_height - $padding; // copy watermark on main image imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, $opacity); // print image to screen header("content-type: image/jpeg"); imagejpeg($image); imagedestroy($image); imagedestroy($watermark);
Example images:
Watermarked image with 10% opacity
Watermarked image with 50% opacity