Add watermark to images in php

PHP 4 responses so far

A watermark is a visible image imprinted or embossed directly onto the paper or digitally added onto an image later.  There is a danger factor in publishing your images online. Hence adding a watermark to your image will prevent others from downloading and using it directly.Also if you have a website where users upload their private photos specific/relevant to your website, you may like to protect these images from being misused.so you can add your website/company logo as a watermark on these images.

Adding watermark on images in php is a fairly simple task and rest of this article will show you the code to achieve it


<?php

define('WATERMARK_OVERLAY_IMAGE', 'logo.png'); // add your watermark image path here
define('WATERMARK_OVERLAY_OPACITY', 50);
define('WATERMARK_OUTPUT_QUALITY', 90);

function create_watermark($source_file_path, $output_file_path)
{
 list($source_width, $source_height, $source_type) = getimagesize($source_file_path);
 if ($source_type === NULL) {
 return false;
 }
 switch ($source_type) {
 case IMAGETYPE_GIF:
 $source_gd_image = imagecreatefromgif($source_file_path);
 break;
 case IMAGETYPE_JPEG:
 $source_gd_image = imagecreatefromjpeg($source_file_path);
 break;
 case IMAGETYPE_PNG:
 $source_gd_image = imagecreatefrompng($source_file_path);
 break;
 default:
 return false;
 }
 $overlay_gd_image = imagecreatefrompng(WATERMARK_OVERLAY_IMAGE);
 $overlay_width = imagesx($overlay_gd_image);
 $overlay_height = imagesy($overlay_gd_image);
 imagecopymerge(
 $source_gd_image,
 $overlay_gd_image,
 $source_width - $overlay_width,
 $source_height - $overlay_height,
 0,
 0,
 $overlay_width,
 $overlay_height,
 WATERMARK_OVERLAY_OPACITY
 );
 imagejpeg($source_gd_image, $output_file_path, WATERMARK_OUTPUT_QUALITY);
 imagedestroy($source_gd_image);
 imagedestroy($overlay_gd_image);
}

/*
 * Uploaded file processing function
 */

define('UPLOADED_IMAGE_DESTINATION', '../images/folder1/');
define('PROCESSED_IMAGE_DESTINATION', '../images/folder2/');

function process_image_upload($Field)
{
 $temp_file_path = $_FILES[$Field]['tmp_name'];
 $temp_file_name = $_FILES[$Field]['name'];
 list(, , $temp_type) = getimagesize($temp_file_path);
 if ($temp_type === NULL) {
 return false;
 }
 switch ($temp_type) {
 case IMAGETYPE_GIF:
 break;
 case IMAGETYPE_JPEG:
 break;
 case IMAGETYPE_PNG:
 break;
 default:
 return false;
 }
 $uploaded_file_path = UPLOADED_IMAGE_DESTINATION . $temp_file_name;
 $processed_file_path = PROCESSED_IMAGE_DESTINATION . preg_replace('/\.[^\.]+$/', '.jpg', $temp_file_name);
 move_uploaded_file($temp_file_path, $uploaded_file_path);
 $result = create_watermark($uploaded_file_path, $processed_file_path);
 if ($result === false) {
 return false;
 } else {
 return array($uploaded_file_path, $processed_file_path);
 }
}

?>

code which call these functions to store uploaded image in “folder1″ and watermark image in “folder2″ is as follows:


<?

$result = process_image_upload('imagename'); // uploaded image name goes here
if ($result === false)
 echo '<br>An error occurred during file processing.';

?>

The following two tabs change content below.
I am a core php developer and web designer working as a freelancer in elance,odesk etc.

Latest posts by Mudit (see all)

  • http://www.greenarrowconsultancy.com green arrow consultancy

    intresting to read this ! how it is possible to protect , i dont think that, but really nice one to sharing with us.

  • DNeers

    Very interesting information, you cannot even imagine how it will help me make my dream come true, thank you for this.

  • http://www.sswebexperts.com/ SS Web Experts

    very useful & Interesting information.

  • Marcus mouse

    Thanx very much, this means a lot.

x
Loading...