Ce petit utilitaire vous permet d'insérer facilement et automatiquement un copyright dans une série d'images (je préfère le terme watermark).
Ce code est la version 2.0 de :
WaterMark
De base, ne nécessite que deux fichiers et php 4xx:
- un fichier .htaccess
- un fichier WaterMark.php
- OPTION: Votre logo au format PNG
Compréhension et fonctionnement
1. Créez un fichier .htaccess vierge et copiez-y le code suivant :
Le fichier .htaccess est toujours le premier fichier lu par un système avant l'affichage d'une page. C'est grâce à ce fichier que nous pouvons appeler la fonction addhandler qui est de base inclue à apache server.
La ligne action WaterMark2 doit être modifiée en fonction du répertoire dans lequel se situe le fichier WaterMark2.php.
2. Utilisez le fichier WaterMark2.php ci-dessous :
<?php
/*
WATERMARK_TYPE
Type de watermark
Valeurs: 'text' | 'image'
// FIN DE LA CONFIGURATION
// Utilisateurs non averti, ne pas toucher au reste ...
$original_image_file = $_SERVER['DOCUMENT_ROOT'] . $_SERVER['PATH_INFO'];
$original_image_info = getimagesize($original_image_file);
if ($original_image_info) {
$original_image_width = $original_image_info[0];
$original_image_height = $original_image_info[1];
$original_image_imagetype = $original_image_info[2];
$original_image_mime_type = $original_image_info['mime'];
}
else {
header("Status: 500 Internal Server Error");
if ($_SERVER['REQUEST_METHOD'] != 'HEAD') {
header("Content-Type: text/plain");
echo "WaterMark: Erreur lors de la lecture des propriétés des images de la gallerie.";
echo "Une ou plusieurs images sont tronquées par une signature d'entête.\n";
}
exit;
}
$watermark_image_info = getimagesize($watermark_image_file);
if ($original_image_info) {
$watermark_image_width = $watermark_image_info[0];
$watermark_image_height = $watermark_image_info[1];
$watermark_image_imagetype = $watermark_image_info[2];
$watermark_image_mime_type = $watermark_image_info['mime'];
}
else {
header("Status: 500 Internal Server Error");
if ($_SERVER['REQUEST_METHOD'] != 'HEAD') {
header("Content-Type: text/plain");
echo "WaterMark: Erreur lors de a lecture des propriétés de l'image à incruster.";
echo "L'image est tronquée par une signature d'entête.\n";
}
exit;
}
Ce code est commenté, il ne vous suffit donc que de le lire pour comprendre ce que vous pouvez modifier.
Vous avez la possibilité soit de mettre une image (et régler sa transparence et sa position) soit de mettre du texte (modifiez la valeur de la variable: define('WATERMARK_TYPE', 'text ou image');
DANS CET EXEMPLE :
Sur votre hébergement, vous avez un répertoire nommé galleriephoto comprenant des photos et une interface html ou php standard pour les afficher au grand public.
1. Copier le fichier .htacces dans le root de votre site (répertoire www généralement).
2. Copiez le fichier WaterMark.php et éventuellement votre logo au format PNG dans le répertoire galleriephoto et c'est tout !
Lors de la visite du site, le WaterMark s'affichera sur les images même si l'internaute les télécharge.
Si vous avez plusieurs répertoires, copiez à nouveau les fichiers: .htacces, WaterMark2.php et votrelogo.png dans chacun des répertoires et réglez le fichier .htaccess de chaque répertoire.
Il est bien entendu que le WaterMark est un outil vituel qui ne modifie pas les photos directement mais rajoute via une transposition le texte ou l'image (ex: logo) sur vos photos. Si vous retéléchargez vos photos via FTP, vous remarquerez que le watermark ne s'y trouve pas.
VERIFIEZ BIEN LES POINTS SUIVANTS (FAQ)
1. Testez avec 1 seul htacces (désactivez temporairement le vôtre si vous en avez déjà un).
2. Vérifiez que le fichier WaterMark2.php comporte bien 223 lignes.
3. Vérifiez l'orthographe du fichier WaterMark2.php (W et M majuscule)
4. Vérifiez que :
- La version de php est bien 4
- La librairie GD2 est installée
5. Il se peut que ce code ne fonctionne pas chez certains hébergeurs ne permettant pas l'accès addhandler