Il faut tout d'abord un script php:
Code : Tout sélectionner
<?php
include ('config.lib.php');
if (isset($_GET["img"])) $img = REALPATH.$_GET["img"];
else $img = REALPATH."images/articles/15/Dscn8700.jpg";
//On tente de l'ouvrir
//Si ça ne marche pas, on vire le "wk_"
if (!@fopen($img, 'r'))
$img = str_replace("wk_", "", $img);
//die($img);
mettre_watermark($img, REALPATH."images/lan/watermark.png");
function mettre_watermark($img, $watermark) {
//on demande les dimension de l'image $img:
$size = @getimagesize($img);
//largeur
$largeur=$size[0];
//longeur
$longeur=$size[1];
//on regarde si c'est png jpg gif
$type=$size[2];
//on charge l'image $img dans $img_big:
switch($type)
{
case 2: $img_big = imagecreatefromjpeg($img); break;
case 3:
$img_big = imagecreatefrompng($img);
imagesavealpha($img_big,TRUE);
break;
case 1: $img_big = imagecreatefromgif($img);break;
}
imagealphablending($img_big,TRUE);
$destImage=imagecreatetruecolor($largeur,$longeur);
imagecopyresampled($destImage,$img_big,0,0,0,0,$largeur,$longeur,$largeur,$longeur);
//Copie du watermark
//die($watermark);
$size_water = getimagesize($watermark);
//largeur
$largeur_water=$size_water[0];
//longeur
$longeur_water=$size_water[1];
//on regarde si c'est png jpg gif
$type_water=$size_water[2];
switch($type_water)
{
case 2: $img_water = imagecreatefromjpeg($watermark); break;
case 3:
$img_water = imagecreatefrompng($watermark);
imagesavealpha($img_water,TRUE);
break;
case 1: $img_water = imagecreatefromgif($watermark);break;
}
imagealphablending($img_water,TRUE);
$img_water2 = @imagecreatetruecolor($largeur_water, $longeur_water);
$bgc = imagecolorallocate($img_water2, 255, 255, 255 );
////Couleur de fond
$c_fond = imagecolorallocate($img_water2, 255, 255, 255);//Rouge
imagefilledrectangle($img_water2, 0,0, $largeur_water, $longeur_water, $c_fond);
// on change les occurences $c_fond en transparent
$trans=imagecolortransparent($img_water2, $c_fond);
imagealphablending($img_water2,FALSE);
imagesavealpha($img_water2,TRUE);
imagecopyresampled($img_water2,$img_water,0,0,0,0,$largeur_water,$longeur_water,$largeur_water,$longeur_water);
imagepng($img_water2,$img_water2);
//Positionnement en bas à droite
$position_y = $longeur - $longeur_water;
$position_x = $largeur - $largeur_water;
imagecopy($destImage, $img_water2, $position_x,$position_y,0,0,$largeur_water,$longeur_water);
//on envoie l'image au navigateur:
switch($type)
{
case 2:
//on enverra au navigateur un fichier de type image au format jpeg:
header("Content-type: image/jpeg");
//on envoie l'image reduire au navigateur:
@imagejpeg($destImage);
break;
case 3://on enverra au navigateur un fichier de type image au format jpeg:
header("Content-type: image/png");
//on envoie l'image reduire au navigateur:
@imagepng($destImage);
break;
case 1: //on enverra au navigateur un fichier de type image au format jpeg:
header("Content-type: image/gif");
//on envoie l'image reduire au navigateur:
@imagegif($destImage);
break;
default: false ;
}
imagedestroy($destImage);
imagedestroy($img_water);
imagedestroy($img_water2);
imagedestroy($img_big);
}
?>
Code : Tout sélectionner
RewriteRule (.*)images/(.*)/wk_(.*) /include/watermark.php?img=/images/$2/wk_$3 [L]
Exemple: