Exemple #1 Exemple avec imagecopymerge() pour créer un tatouage numérique translucide
<?php
// Charge le cachet et la photo afin d'y appliquer le tatouage numérique
$im = imagecreatefromjpeg('photo.jpeg');
// Tout d'abord, nous créons un cachet manuellement grâce à GD
$stamp = imagecreatetruecolor(100, 70);
imagefilledrectangle($stamp, 0,0, 99, 99, 0x0000FF);
imagefilledrectangle($stamp, 9,9, 90,60, 0xFFFFFF);
$im = imagecreatefromjpeg('photo.jpeg');
imagestring($stamp, 5, 20, 20, 'libGD', 0x0000FF);
imagestring($stamp, 3, 20, 40, '(c) 2007-8', 0x0000FF);
// Définit les marges du cachet et récupère la largeur et la hauteur du cachet
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);
// Fusionne le cachet dans notre photo avec une opacité (transparence) de 50%
imagecopymerge($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp), 50);
// Sauvegarde l'image dans un fichier et libère la mémoire
imagepng($im, 'photo_stamp.png');
imagedestroy($im);
?>
Cet exemple utilise la fonction imagecopymerge() pour fusionner le cachet avec notre image original. En utilisant cette fonction, nous pouvons définir l'opacité de notre cachet - dans notre exemple, nous l'avons défini à 50%. En pratique, il est plus judicieux de rendre notre protection semi-transparente, la rendant plus difficile à enlever mais permettant également aux visionneuses d'images de la lire sans problème.