Pridanie vodotlače do fotografií pomocou PHP

Po dlhom čase… Minule som tak dumal nad situaciou ako dynamicky priradiť vodotlač na fotografiu. A tu je výsledok mojho krátkeho rozmýšľania 🙂 Celá funkcia je postavená na spájani 2 obrázkov, čiže originálu a vodotlače. Voľbu použitej vodotlače a obrázku som veľmi neriešil, takže je to narýchlo robené, na vodotlač som použil parameter &type=1 alebo 2 a na obrázky parameter image. Originálne obrázky mam schované v priečinku img, ktorý je chránený cez .htacces proti prístupu z vonka.

image.php

[php]
<?php
if(isset($_GET[‘image’])) {
switch($_GET[‘type’]) {
case 1: $wm = imagecreatefromjpeg(‘card-logo.jpg’); break; //1. vodotlac
case 2: $wm = imagecreatefromjpeg(‘card-logo2.jpg’); break; //2. vodotlac
default: $wm = imagecreatefromjpeg(‘card-logo.jpg’); break; //defaultne sa pouzije 1.
}

$imageName = "img/".$_GET[‘image’].".jpg"; //cesta k obrazku

//zistenie rozmerov vodotlace
$wmWidth = imagesx($wm);
$wmHeight = imagesy($wm);

$image = imagecreatetruecolor($wmWidth, $wmHeight);
$image = imagecreatefromjpeg($imageName);

$size = getimagesize($imageName);

//vypocitanie x, y suradnic na stred, kde bude vodotlac umiestnena
$destX = ($size[0] – $wmWidth)/2;
$destY = ($size[1] – $wmHeight)/2;

//alebo imagecopy namiesto imagecopymerge pri jpg+png
imagecopymerge($image, $wm, $destX, $destY, 0, 0, $wmWidth, $wmHeight, 30);
//posledne cislo je hladina alfa, cize priehladnost vodotlace

header("Content-type: image/jpeg");
imagejpeg($image);
imagedestroy($image);
imagedestroy($wm);
}
?>
[/php]

index.html

[html]
<!– obrazok volame cez PHP subor a parameter, defaultne je nastavena 1. vodotlac, ak chceme pouzit druhu bolo by to nasledovne: image.php?image=Desert&type=2 –>
<img src="image.php?image=Desert" />
[/html]

A nakoniec ukážka:

Fotografia s vodotlačou