Bonjour,

J'aimerais mettre un watermark sur les images que j'upload, donc j'ai cherche un exemple pour ensuite en faire un moi même.

Après une recherche de 2 sec sous Google, j'ai trouvé ca :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<?php
 
// Chemin et nom de fichier du fichier PNG à insérer dans l'image
// Pour ne pas utiliser d'image, commentez la ligne suivante
 
// Define('WATERMARK_IMAGE', './test.png');
 
// Intensité de transition en pourcentage
Define('WATERMARK_PERCENT', '60');
 
// Texte copyright à insérer dans l'image
// Pour ne pas utiliser de texte, commentez la ligne suivante
 
Define('WATERMARK_TEXT', 'Copyright (c) 2006 www.visualprod.net');
 
// Taille de la police de caractère ( 1 / 2 / 3 / 4 / 5 )
Define('WATERMARK_TEXT_FONT', '3');
 
// Le texte en mode Shadow (1 = oui - 2 = non)
Define('TEXT_SHADOW', '1');
 
// Couleur du texte
Define('TEXT_COLOR', '#FFFFFF');
 
 
// PARAMETRES GENERAUX
Define('WATERMARK_ALIGN_H', 'right'); // left / right / center
Define('WATERMARK_ALIGN_V', 'bottom'); // top / bottom / center
Define('WATERMARK_MARGIN', '10');
 
// --------------------------------------------------
 
$dr=preg_replace('/WaterMark\.php.+/', '', $_SERVER['PHP_SELF']);
$filename=str_replace($dr, './', $_SERVER['PATH_INFO']);
$lst=GetImageSize($filename);
$image_width=$lst[0];
$image_height=$lst[1];
$image_format=$lst[2];
 
if ($image_format==1) {
   Header("Content-Type:image/gif");
   readfile($filename);
   exit;
} elseif ($image_format==2) {
   $old_image=imagecreatefromjpeg($filename);
} elseif ($image_format==3) {
   $old_image=imagecreatefrompng($filename);
} else {
   readfile($filename);
   exit;
}
 
 
if (Defined('WATERMARK_TEXT') && WATERMARK_TEXT!='') {
 
   $color = eregi_replace("#","", TEXT_COLOR);
   $red = hexdec(substr($color,0,2));
   $green = hexdec(substr($color,2,2));
   $blue = hexdec(substr($color,4,2));
 
   $text_color = imagecolorallocate ($old_image, $red, $green, $blue);
 
   $text_height=imagefontheight(WATERMARK_TEXT_FONT);
 
   $text_width=strlen(WATERMARK_TEXT)*imagefontwidth(WATERMARK_TEXT_FONT);
   $wt_y=WATERMARK_MARGIN;
   if (WATERMARK_ALIGN_V=='top') {
      $wt_y=WATERMARK_MARGIN;
   } elseif (WATERMARK_ALIGN_V=='bottom') {
 
      $wt_y=$image_height-$text_height-WATERMARK_MARGIN;
   } elseif (WATERMARK_ALIGN_V=='center') {
      $wt_y=(int)($image_height/2-$text_height/2);
   }
 
   $wt_x=WATERMARK_MARGIN;
   if (WATERMARK_ALIGN_H=='left') {
      $wt_x=WATERMARK_MARGIN;
   } elseif (WATERMARK_ALIGN_H=='right') {
      $wt_x=$image_width-$text_width-WATERMARK_MARGIN;
   } elseif (WATERMARK_ALIGN_H=='center') {
      $wt_x=(int)($image_width/2-$text_width/2);
   }
 
   if (TEXT_SHADOW=='1') {
      imagestring($old_image, WATERMARK_TEXT_FONT, $wt_x+1, $wt_y+1, WATERMARK_TEXT, 0);
   }
   imagestring($old_image, WATERMARK_TEXT_FONT, $wt_x, $wt_y, WATERMARK_TEXT, $text_color);
}
 
if (Defined('WATERMARK_IMAGE') && WATERMARK_IMAGE!='' && file_exists(WATERMARK_IMAGE)) {
 
   $lst2=GetImageSize(WATERMARK_IMAGE);
   $image2_width=$lst2[0];
   $image2_height=$lst2[1];
   $image2_format=$lst2[2];
 
   if ($image2_format==2) {
      $wt_image=imagecreatefromjpeg(WATERMARK_IMAGE);
   } elseif ($image2_format==3) {
      $wt_image=imagecreatefrompng(WATERMARK_IMAGE);
   }
 
   if ($wt_image) {
 
      $wt_y=WATERMARK_MARGIN;
      if (WATERMARK_ALIGN_V=='top') {
         $wt_y=WATERMARK_MARGIN;
      } elseif (WATERMARK_ALIGN_V=='bottom') {
         $wt_y=$image_height-$image2_height-WATERMARK_MARGIN;
      } elseif (WATERMARK_ALIGN_V=='center') {
         $wt_y=(int)($image_height/2-$image2_height/2);
      }
 
      $wt_x=WATERMARK_MARGIN;
      if (WATERMARK_ALIGN_H=='left') {
         $wt_x=WATERMARK_MARGIN;
      } elseif (WATERMARK_ALIGN_H=='right') {
         $wt_x=$image_width-$image2_width-WATERMARK_MARGIN;
      } elseif (WATERMARK_ALIGN_H=='center') {
         $wt_x=(int)($image_width/2-$image2_width/2);
      }
 
imagecopymerge($old_image,$wt_image,$wt_x,$wt_y,0,0,$image2_width,$image2_height,WATERMARK_PERCENT);
   }
}
 
if ($image_format==2) {
   imageJpeg($old_image);
}
if ($image_format==3) {
   imagePng($old_image);
}
 
?>
Il suffirait de mettre un .php et un .htaccess dans un répertoire pour apliqué à watermark à toute les images affiché par les clients. Les images ne sont pas modifier physiquement, mais seulement celle envoyé au visiteur.

J'ai essayé mais ca ne foncitonne pas.
Apparament il suffit de mettre un .php et un .htaccess dans le répertoire, et de modifier le .htaccess avec le chemin relatif du dossier.
Par exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
addhandler wtmrk jpg
action wtmrk /site/galerie/image/album/WaterMark.php
Chez moi ca ne fontionne pas, j'ai le code de l'image qui s'affiche, pas l'image.

Quelqu'un pourrait le tester et savoir si il fonctionne ?