This is happen 3 days ago when my friend asking for converting him .htaccess into lighttpd rewrite rules format. After conversion done he wanted to share this script to everyone. If you’re professional Fotographer or just blogger, you may wanted to copyright all your photos/images. Even we know, sometimes people like to share for having fun…. but some people need a copyright to protected his original works before someone copy it. If you’re doing this manually it will take a long time and of course you will bored before this done. In short time we can make a simple watermark to protected our images.

Requirements:

  1. Apache with mod_rewrite / lighttpd (just convert rewrite rules, it should work)
  2. PHP with GD library (check in your phpconfig or asking your webhosting)

Step one.

Prepare one images that you should used as watermark. This images should be in .PNG format, you can created one using photoshop software to make transparant effect.

Step two.

Make new or open your .htaccess files and write down this code inside it:

RewriteEngine On
RewriteRule ^(.+)\.jpg$ wrapper.php?image=$1\.jpg [L]
RewriteRule ^(.+)\.gif$ wrapper.php?image=$1\.gif [L]
RewriteRule ^(.+)\.png$ wrapper.php?image=$1\.png [L]
RewriteRule ^(.+)\.bmp$ wrapper.php?image=$1\.bmp [L]

For Lighttpd users try to using this conversion, if you meet any problem just following your path and symbol :

url.rewrite-once = (
“^\(.*).jpg” => “/wrapper.php?image=$1.jpg”,
“^\(.*).gif” => “/wrapper.php?image=$1.gif”,
“^\(.*).png” => “/wrapper.php?image=$1.png”,
“^\(.*).bmp” => “/wrapper.php?image=$1.bmp”
)

Step three.

Create wrapper.php files and put code below inside it:

<?php
$watermark = “watermark.png”;
$image = $_GET[“image”];

if (empty($image)) die();

if (!file_exists($image)) {
header(“404 Not Found”);
echo “File Not Found.”; die();
}

$outputType = getFileType($image);
watermark($image, $watermark, $outputType);

/**
Outputs the image $source with $watermark in the lower right corner.
@param $source the source image
@param $watermark the watermark to apply
@param $outputType the type to output as (png, jpg, gif, etc.)
defaults to the image type of $source if left blank
*/

function watermark($source, $watermark, $outputType=””) {
$sourceType = getFileType($source);
$watermarkType = getFileType($watermark);
if (empty($outputType)) $outputType = $sourceType;
if ($outputType == “gif”) $outputType = “png”;

header(“Content-type:image/$outputType”);
$createSource = “ImageCreateFrom”.strtoupper($sourceType);
$showImage = “Image”.strtoupper($outputType);
$createWatermark = “ImageCreateFrom”.strtoupper($watermarkType);

// Load original and watermark to memory

$output = $createSource($source);
$logo = $createWatermark($watermark);
ImageAlphaBlending($output, true);

// Find proper coordinates so watermark will be in the lower right corner

$x = ImageSX($output) – ImageSX($logo);
$y = ImageSY($output) – ImageSY($logo);

// Display

ImageCopy($output, $logo, $x, $y, 0, 0, ImageSX($logo), ImageSY($logo));
$showImage($output);

// Purge

ImageDestroy($output);
ImageDestroy($logo);
}

function getFileType($string) {
$type = strtolower(eregi_replace(“^(.*)\.”,””,$string));
if ($type == “jpg”) $type = “jpeg”;
return $type;
}

Or you can download in here.

Step Fourth.

Upload all of this files into your public_html folder (please note, all your images files will get affected, if you’re in shared hosting upload this 3 files into your root domain folder) watermark should work even you embed this images into .html I already try in this blog, it works watermark all direct images or embeding images in .html anyway I don’t like because it’s affected my other images in templates so I remove it. This will be nice script for wallpapers/photos website.

Done, Have a nice day! 🙂

Similar Posts:

Related Search Terms:

    Digg Del.icio.us StumbleUpon Reddit Twitter RSS

If you're new here, you may want to subscribe to my RSS feed. You may copy or publish this article to your blog or other site as long you give credit link back to this site article. Thanks for visiting my blog!