Disponiamo di 2 immagini:
– l’immagine originale
– immagine watermark che andrà sovrapposta per semplicità visualizzo l’immagine direttamente da PHP settando l’header come image/jpeg
header(‘content-type: image/jpeg’);
A questo punto il browser è pronto per visualizzare un’immagine. Supponiamo di voler mettere il watermark in basso a destra distante dal bordo di 5 pixel.
Dobbiamo quindi calcolare le dimensioni del watermark e quelle dell’immagine orginale.
$watermark = imagecreatefrompng(‘watermark.png’); $watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
A questo punto troviamo le dimensioni dell’immagine originale:
$image = imagecreatefromjpeg($origImg);
$size = getimagesize($origImg]);
dove $origImg è il percorso completo del file più il nome del file completo di estensione.
$size adesso è un vettore di 2 righe dove la riga 0 è la larghezza e la riga 1 è l’altezza. Decidiamo la destinazione dell’imaggine watermark all’interno di quella originale.
$dest_x = $size[0] – $watermark_width – 5;
$dest_y = $size[1] – $watermark_height – 5;
Adesso è giunto il momento fatale, dobbiamo mettere un’immagine sopra l’altra alle coordinate decise prima, php e le CD library ci aiutano parecchio con la funzione imagecopymerge().
imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, 100);
Possiamo finalmente visualizzare l’immagine nel browser e per una questione di pulizia, possiamo deallocare la RAM occupata dalle immagini create:
imagejpeg($image); //Visualizza l’immagine
imagedestroy($image);
imagedestroy($watermark);
imagecreatefrompng();
imagesx();
imagesy();
imagecreatefromjpeg();
getimagesize();
imagecopymerge();
imagejpeg();
imagedestroy(); buona lettura!]]>
Nessun commento “Watermark in php, come fare”
Urca,
queste librerie sono veramente un portento!
Bravo enrico!
eh ma io non ho fatto niente…
fanno tutto le librerie.
cmq ci sono un po’ di problemi con le trasparenze e quant’altro.