Tutoriel PHP : ajouter des filigranes à une image

  • ARTICLES
  • /
  • TUTORIEL PHP : AJOUTER DES FILIGRANES À UNE IMAGE

Le filigrane est une solution efficace pour restreindre ces « copies », obligeant ainsi tout le monde à vous créditer, ou au pire, à utiliser un éditeur d'image pour effacer la filigrane (généralement en coupant l'image).



La librairie GD est un impératif. Vous devez l'activer sur votre serveur web. Si vous ne l'avez pas, contactez votre hébergeur, ou migrez chez un autre hébergeur. Si vous avez un VPS et que vous avez suivi notre tutoriel sur ISPConfig, rassurez-vous, c'est déjà activé.



Ajouter du texte



C'est un exemple assez simple, ajoutons du texte sur l'image. On supposera que votre image est du même répertoire que votre fichier PHP, et se nomme « image.jpg ». Voici alors le bout de code correspondant :





<?php

// Chargement de l'image dans une variable
$img = ImageCreateFromJPEG('image.jpg');

// Couleur du texte au format RGB
$textcolor = imagecolorallocate($img, 224, 34, 34);

// Le texte en question
imagestring($img, 5, 10, 10, 'Lean', $textcolor);

// Un header spécifique
header('Content-type: image/jpeg');

// Maintenant, envoyer les données de l'image
imagejpeg ($img);

// Libérons la mémoire
imagedestroy($img);

?>



Et voilà ! Quand vous allez charger votre fichier PHP, elle renverra une image JPEG avec le filigrane. Vous pouvez donc, maintenant, l'ajouter sur vos pages avec <img src='votre-fichier.php' />.



Filigrane au format PNG



Si vous voulez personnaliser encore plus votre filigrane qu'un simple texte, notez qu'il est tout à fait possible d'utiliser un fichier PNG pour le mettre en filigrane. Voici un autre bout de code :





<?php

// Chargement des image dans des variables
$logo = ImageCreateFromPNG('logo.png');
$img = ImageCreateFromJPEG('image.jpg');

// Superposition des images
imagecopy($img, $logo, 20, 20, 0, 0, imagesx($logo), imagesy($logo)) ;

// Un header spécifique
header('Content-type: image/jpeg');

// Maintenant, envoyer les données de l'image
imagejpeg ($img);

// Libérons la mémoire
imagedestroy($img);

?>



Ou si vous voulez renvoyer au format PNG, remplacez le content-type par image/png et utilisez imagepng($img) au lieu de imagejpeg($img).



Nous voilà au bout de ce petit tutoriel. Cela vous a-t-il plu ? Partagez-le à vos amis!