Ajouter automatiquement un logo en filigrane (watermark) sur ses images
Pour éviter de se faire voler ses images, le mieux est d'ajouter un petit logo dessus. Ce script permet de définir la position du logo, la marge depuis le bord et la transparence de ce logo. Il prend en charge les formats gif, jpg et png. Comme le traitement est long, le fichier peut être sauvegardé en cache au format png. Dans ce cas là, il n’est créé que s’il n’existe pas, ou s’il est plus récent que l’image et le logo.
Il faut ajouter ces deux lignes dans le fichier .htaccess :
addhandler WaterMark jpg gif jpeg png
action WaterMark /watermark.php
Il faut également modifier les constantes CACHE_PATH (chemin du répertoire cache) et LOGO_PATH (chemin du fichier logo).
La position (en bas à droite), la marge par rapport au bord (10 pixels) et la transparence (75%) du logo sont modifiables avec la ligne :
$watermarker = new Watermarker(LOGO_PATH, POSITION_BOTTOM, POSITION_RIGHT, 10, 10, 75);
Il faut ajouter ces deux lignes dans le fichier .htaccess :
addhandler WaterMark jpg gif jpeg png
action WaterMark /watermark.php
Il faut également modifier les constantes CACHE_PATH (chemin du répertoire cache) et LOGO_PATH (chemin du fichier logo).
La position (en bas à droite), la marge par rapport au bord (10 pixels) et la transparence (75%) du logo sont modifiables avec la ligne :
$watermarker = new Watermarker(LOGO_PATH, POSITION_BOTTOM, POSITION_RIGHT, 10, 10, 75);
|
|
Code Source
Fonctions du code
: Définit une constante - (PHP 4, PHP 5)
: -
: Retourne la taille d'une image - (PHP 4, PHP 5)
: Crée une nouvelle image à partir d'un fichier ou d'une URL - (PHP 4, PHP 5)
: Crée une nouvelle image à partir d'un fichier ou d'une URL - (PHP 4, PHP 5)
: Crée une nouvelle image à partir d'un fichier ou d'une URL - (PHP 4, PHP 5)
: Trouve la position de la dernière occurrence d'un caractère dans une chaîne -...
: Renvoie une chaîne en minuscules - (PHP 4, PHP 5)
: Retourne un segment de chaîne - (PHP 4, PHP 5)
: Retourne la largeur d'une image - (PHP 4, PHP 5)
: Retourne la hauteur de l'image - (PHP 4, PHP 5)
: Arrondit à l'entier inférieur - (PHP 4, PHP 5)
: Crée une nouvelle image en couleurs vraies - (PHP 4 >= 4.0.6, PHP 5)
: Copie une partie d'une image - (PHP 4, PHP 5)
: Détruit une image - (PHP 4, PHP 5)
: Retourne l'index de la couleur d'un pixel donné - (PHP 4, PHP 5)
: Retourne la couleur associée à un index - (PHP 4, PHP 5)
: -
: Retourne l'index de la couleur donnée - (PHP 4, PHP 5)
: Alloue une couleur pour une image - (PHP 4, PHP 5)
: Retourne l'index de la couleur la plus proche d'une couleur donnée - (PHP...
: Dessine un pixel - (PHP 4, PHP 5)
: Calcule le md5 d'une chaîne - (PHP 4, PHP 5, PECL hash:1.1-1.3)
: Vérifie si un fichier ou un dossier existe - (PHP 4, PHP 5)
: Lit la date de dernière modification du fichier - (PHP 4, PHP 5)
: Envoie une image PNG vers un navigateur ou un fichier - (PHP 4, PHP 5)
: Envoie un en-tête HTTP - (PHP 4, PHP 5)
: Affiche un fichier - (PHP 4, PHP 5)
Commentaires
Bonjour,
j'ai un soucis lorsque je veux utiliser votre script.
J'ai modifier le chemin vers mon repertoire de cache, ainsi que le chemin vers le logo en png
Mes images à protéger sont dans un repertoire images/zooms/
Si je comprend bien le fonctionnement, il faut que je met dans ce dossier le fichier watermark.php ainsi que le fichier .htaccess contenant c'est 2 lignes :
addhandler WaterMark jpg gif jpeg png
action WaterMark /images/zooms/watermark.php
L'image ne saffiche pas et quand je veux accéder à cette image j'ai une erreur:
Parse error: syntax error, unexpected '}' in /home/xxxxx/sd/xxxxxxx/www/images/zooms/zoom_smf31.jpg on line 76
et je n'arrive pas a trouver de solution. auriez vous une idée de mon erreur ?
j'ai un soucis lorsque je veux utiliser votre script.
J'ai modifier le chemin vers mon repertoire de cache, ainsi que le chemin vers le logo en png
Mes images à protéger sont dans un repertoire images/zooms/
Si je comprend bien le fonctionnement, il faut que je met dans ce dossier le fichier watermark.php ainsi que le fichier .htaccess contenant c'est 2 lignes :
addhandler WaterMark jpg gif jpeg png
action WaterMark /images/zooms/watermark.php
L'image ne saffiche pas et quand je veux accéder à cette image j'ai une erreur:
Parse error: syntax error, unexpected '}' in /home/xxxxx/sd/xxxxxxx/www/images/zooms/zoom_smf31.jpg on line 76
et je n'arrive pas a trouver de solution. auriez vous une idée de mon erreur ?
Hello, nice code
but when i try i've got this error :
Warning: Cannot modify header information - headers already sent by (output started at /home/intranet/www/HollidaysPictures/affiche_album.php:6) in /home/intranet/www/HollidaysPictures/watermark.php on line 199
and he diplayed the source code of the image.
but when i try i've got this error :
Warning: Cannot modify header information - headers already sent by (output started at /home/intranet/www/HollidaysPictures/affiche_album.php:6) in /home/intranet/www/HollidaysPictures/watermark.php on line 199
and he diplayed the source code of the image.
you must not have a space or other caracters before <?php
bonjour votre script fonctionne très bien mais je voudrais qu'il ne fonctionne pas pour un de mes dossier je m'explique :
Je voudrais qu'il soit effectif que pour répertoire wordpress qui est à la racine de mon www/
pas pour le sous répertoire zenphoto est ce possible?
Je voudrais qu'il soit effectif que pour répertoire wordpress qui est à la racine de mon www/
pas pour le sous répertoire zenphoto est ce possible?
Pour limiter à un répertoire il faut essayer de mettre dans le .htaccess :
<Directory /wordpress/*>
addhandler WaterMark jpg gif jpeg png
action WaterMark /watermark.php
</Directory>
Voici le htaccess que j'ai ca fonctionne pas.
<Directory /zenphoto/albums/upload/*>
addhandler WaterMark jpg gif jpeg png
action WaterMark /watermark.php
</Directory>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
<Directory /zenphoto/albums/upload/*>
addhandler WaterMark jpg gif jpeg png
action WaterMark /watermark.php
</Directory>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Je m'explique je voudrais que seules soient watermarkées les photos dans le dossier zenphoto/albums/upload/
Dans upload j'ai des sous dossiers.
J'ai essayé de placer la commande que vous m'avez indiqué dans le htaccess mais ca ne fonctionne pas.
J'ai une erreur 500.
Dans upload j'ai des sous dossiers.
J'ai essayé de placer la commande que vous m'avez indiqué dans le htaccess mais ca ne fonctionne pas.
J'ai une erreur 500.
comment faire lorsque l'on a pas de chemin pour les photos puisqu'elles sont stockées dans la base de donnée et arrivée par ftp ?
Ajouter un commentaire
Librairie PHP
Connexion
Images
PHP
- Affichage (5)
- Applications (9)
- Chaînes (71)
- Classes (29)
- Constantes (4)
- Cookies (3)
- Date-Heure (40)
- Email (14)
- Fichiers - Réps (45)
- Fonctions (23)
- Formulaires (18)
- GD-Graphiques (11)
- Google (13)
- HTML (7)
- Images (21)
- Inclassable (28)
- Maths (24)
- MySQL (23)
- Navigateurs (6)
- Recherches (6)
- Regex (13)
- Reseau (2)
- Sécurité (25)
- Sessions (13)
- Statistiques (5)
- Système (18)
- Tableaux (21)
- Tag-cloud (3)
- Templates (3)
- Twitter (5)
- URL (22)
- Variables (8)
- Vidéos (2)
- Windows (1)
- XML (2)
|
||























