Se connecter avec
S'enregistrer | Connectez-vous

Watermark (filigrane en php)

Dernière réponse : dans Programmation

Bonjour a tous j'ai souhaiterais integrer
un petit script permettant entre autre
d'imposer un filigrane sur mes images pour
ainsi mettre mon copiright....
J'ai trouver ce petit script sur le net, et j'ai un
petit soucis, mon image ne s'affiche pas....
a votre avis d'ou pourrais venir ce problem?
si non quand j'enleve mes deux fichiers
(WaterMark.php et .htacces) tout fonctionne correctement!
Mon site: http://csource.free.fr
et le lien du script:
http://www.asp-php.net/scripts/asp-php/watermark.php

Fichier .htaccess

addhandler wtmrk jpg
action wtmrk /galleriephoto/WaterMark.php

WaterMark.php

<?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);
}
?>

Et voici ce que j'ai mis dans le htaccess:

Et en ce qui conercne le WaterMark.php j'ai rien modifer!
Un petit screen-shot du ftp:

Shot at 2007-08-13

Autres pages sur : watermark filigrane php

Lassé par la pub ? Créez un compte
Expert Programmation

C'est parce qu'il y a des mots qui dépassent en largeur, alors ça bug... mais ça fait super longtemps que ce bug existe.

Sinon tu nous as tout donné, mais quel est ton problème ??
Expert Programmation

D'après l'erreur, il y a un soucis dans le fichier .htaccess.

Tu l'as mis où le .htaccess ? A la racine du FTP ? Ou dans le dossier imgboss ?
Je pense que c'est à la racine qu'il faut le mettre ;) 

Oui alors voici ce que ca me donne lorsque je met mon fichier htaccess dans la racine.
Bien sur le fichier que j'avais mis dans le repertoire imgboss a été supprimer et c'est celui la qui a été deplacé dans la racine :) 

Expert Programmation

Met le .htaccess dans le dossier imgboss et accède à l'image, tu auras l'erreur.

Edit: là le problème est le .htaccess qui est mal fait, il doit y avoir une erreur dans le chemin vers Watermark.php je pense...
Expert Programmation

Faudrait essayer de changer le chemin vers le fichier watermark.
Met le fichier .htaccess dans ton dossier imgboss, et enlève le chemin vers le watermark, laisse juste watermark.php vu que c'est dans le même dossier.
Lassé par la pub ? Créez un compte
Tom's guide dans le monde