Filigrane d'une image

Contenu du snippet

Ce code utilise libGD pour appliquer un logo en filigrane sur une image de type GIF, PNG ou JPEG

Tout est commenté dans le code, Tout est commenté dans le code, les dimensions en paramétres sont respectivement la largueur et la hauteur du cadre d'affichage pour calculer le ratio.

Source / Exemple :


<?

//Cette fonction sert à filigraner les visuels
//Le paramètre img_src est l'image source ici le visuel
//Le second paramètre img_cop est le copyright à superposer
//Les parametres $taillelarg et $taillehaut sont respectivement la largueur et la hauteur d'affichage souhaitée
//c'est parti !!!

function filigrane($img_src,$img_cop,$taillelarg,$taillehaut)
{

//largueur de l'affichage
$taille_larg=$taillelarg;
//hauteur de l'affichage
$taille_haut=$taillehaut;

//récuperation de l'extension
$extension = strrchr($img_src,'.');

switch($extension){
case ".gif":
$image_s=imagecreatefromgif($img_src) or die("Erreur à l'ouverture");break;
case".png":
$image_s=imagecreatefrompng($img_src) or die("Erreur à l'ouverture");break;
case ".jpg"||".jpeg"||".jpe":
$image_s=imagecreatefromjpeg($img_src) or die("Erreur à l'ouverture");break;
}

//récuperation des dimensions de l'image principale
$width=imagesx($image_s);
$height=imagesy($image_s);

//redimention de l'image source
if($width>=$height) //visuel horizontal
{
$ratio=max($width/$taille_larg, $height/$taille_haut);
$new_width=$taille_larg; 
$new_height=$height/$ratio;
}
else //visuel vertical
{
$ratio=max($width/$taille_larg, $height/$taille_haut);
$new_width=$width/$ratio; 
$new_height=$taille_haut;
}

//création de l'image source redimentionnée
$thumb=imagecreatetruecolor($new_width,$new_height);
imagecopyresized($thumb,$image_s,0,0,0,0,$new_width,$new_height,$width,$height);

//dimensions de l'image principale redimentionnée
$width_thumb=imagesx($thumb);
$height_thumb=imagesy($thumb);

//création de l'image copyright
$image_c=imagecreatefrompng($img_cop);

//récuperation des dimensions de l'image du copyright
$larg_cop=imagesx($image_c);
$long_cop=imagesy($image_c);

//calcul la position du copyright sur l'axe des abscisses 
$x=($width_thumb-$larg_cop)/2;

//calcul la position du copyright sur l'axe des ordonnées 
$y=($height_thumb-$long_cop)/2;

//réalisation de la superposition
imagecopymerge($thumb,$image_c, $x, $y, 0, 0, $larg_cop, $long_cop, 60);

//sauvegarde de l'image
switch($extension){
case ".gif":
imagegif($thumb,"./"."fili-".$img_src) or die ("Erreur de création");
break;
case".png":
imagepng($thumb,"./"."fili-".$img_src) or die ("Erreur de création");
break;
case ".jpg"||".jpeg"||".jpe":
imagejpeg($thumb,"./"."fili-".$img_src) or die ("Erreur de création");
break;
}

//libération de la mémoire
imagedestroy($image_s);
}

//appel de la fonction
filigrane('F14.jpg','./ub/logoub.png',800,600);

?>

Conclusion :


Ce code est complétement libre modifiez-le comme bon vous semble.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.