Watermark Image
VN:F [1.9.22_1171]
Rating: 6.9/10 (13 votes cast)

PHP watermark script

A very simple script that watermarks an image with a PNG file using PHP. Just save this PHP file as .php and run this in your website or locahost. Make sure the path specified for your image and the watermark png is correct.

I will be watermarking an image named “mypic.jpg” with my website “logo.png”

<?php
//just save this file as <sumname>.php and run this in your website or locahost//make sure the path specified for your image and the watermark png is correct
function watermark($sourcefile, $watermarkfile) {
# $sourcefile    = Filename of the picture to be watermarked.
# $watermarkfile   = Filename of the 24-bit PNG watermark file.
//Get the resource ids of the pictures
$watermarkfile_id   = imagecreatefrompng($watermarkfile);
imageAlphaBlending($watermarkfile_id, false);
imageSaveAlpha($watermarkfile_id, true);
$fileType = strtolower(substr($sourcefile, strlen($sourcefile)-3));
switch($fileType) {
case("gif"):
$sourcefile_id = imagecreatefromgif($sourcefile);
break;
case("png"):
$sourcefile_id = imagecreatefrompng($sourcefile);
break;
default:
$sourcefile_id = imagecreatefromjpeg($sourcefile);
}
//Get the sizes of both pix
$sourcefile_width = imageSX($sourcefile_id);
$sourcefile_height = imageSY($sourcefile_id);
$watermarkfile_width = imageSX($watermarkfile_id);
$watermarkfile_height = imageSY($watermarkfile_id);
$s_width=$sourcefile_width/2;
$w_width=$watermarkfile_width/2;
$s_height=$sourcefile_height/2;
$w_height=$watermarkfile_height/2;
$dest_x=$s_width ;
$dest_y=$s_height;
// if a gif, we have to upsample it to a truecolor image
if($fileType == "gif") {
// create an empty truecolor container
$tempimage = imagecreatetruecolor($sourcefile_width, $sourcefile_height);
// copy the 8-bit gif into the truecolor image
imagecopy($tempimage, $sourcefile_id, 0, 0, 0, 0, $sourcefile_width, $sourcefile_height);// copy the source_id int
$sourcefile_id = $tempimage;
}
imagecopy($sourcefile_id, $watermarkfile_id, $dest_x, $dest_y, 0, 0, $watermarkfile_width, $watermarkfile_height);
//Create a jpeg out of the modified picture
switch($fileType) {
// remember we do not need gif any more, so we use only png or jpeg.
// See the code above to see how we handle gifs
case("png"):
header("Content-type: image/png");
imagepng ($sourcefile_id);
break;
default:
header("Content-type: image/jpg");
imagejpeg ($sourcefile_id);
}
imagedestroy($sourcefile_id);
imagedestroy($watermarkfile_id);
}
watermark("mypic.jpg","logo.png");
echo "Test";
?>

DEMO

Note:-This tutorial was originally posted on Jul 13, 2009 and Bugs fixed with Demo added on May 20, 2016

VN:F [1.9.22_1171]
Rating: 6.9/10 (13 votes cast)

Leave a Reply

Your email address will not be published. Required fields are marked *