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
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);
}
?>
index.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" />
A nakoniec ukážka:
