Tutoriel PHP : ajouter des filigranes à une image

Tutoriel

Vous vous êtes peut-être rendu compte que beaucoup d'internautes utilisent les images trouvées sur Google Images, sans en informer ni créditer l'auteur.


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!

Actuellement sur Lean.fr


Sécuriser votre serveur web en 10 étapes

Il existe une multitude de moyens pour préserver la sécurité sur vos serveurs web. Ces quelques étapes font parties des meilleurs.

Linux Mint : live et installation depuis une clé USB

Je viens d’installer Linux Mint pour nos prochains tutoriels. Voici comment démarrer et faire l'installation sans utiliser des vieux disques optiques.

Monétisation : comment contourner les bloqueurs de publicités sur WordPress ?

Voilà que vous avez un joli blog WordPress que vous devez maintenant rentabiliser. Mais devinez quoi ? Vos visiteurs refusent de voir des publicités.

Voir plus d'actualités