Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

FILIGRANE D'UNE IMAGE


Information sur la source

Catégorie :Divers Classé sous : filigrane, image, visuel, logo, protection Niveau : Initié Date de création : 04/04/2006 Date de mise à jour : 04/04/2006 23:42:00 Vu : 9 971

Note :
7 / 10 - par 3 personnes
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

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

  • <?
  • //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);
  • ?>
<?

//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.
 

Historique

04 avril 2006 23:42:00 :
Précision sur les paramétres

Commentaires et avis

signaler à un administrateur
Commentaire de bubuze le 05/04/2006 09:33:08

joli !
code propre, commenté,
bravo !

signaler à un administrateur
Commentaire de malalam le 05/04/2006 10:48:04 administrateur CS

Hello,

la meilleure façon de détecter le type d'une image n'est pas de passer par un parsing de ton extension, mais par getimagesize (). De la même manière, tu récupèrerais aussi la taille de l'image de cette manière, d'un coup.
Il faut aussi que tu m'expliques à quoi servent ces 2 lignes :
//largueur de l'affichage
$taille_larg=$taillelarg;
//hauteur de l'affichage
$taille_haut=$taillehaut;

Tu nous fait aussi 2 switch sur l'extension, ce qui est dommage.
create_function () serait plus approprié.

signaler à un administrateur
Commentaire de GRenard le 07/04/2006 15:05:27

L'image copyright est absolument un png ? ah bon...
<?php au lieu de <?
Pourquoi "./"."fili-" et pourquoi pas "./fili-" ?

Ta fonction sert à filigraner... pourquoi avoir inclu un moyen de resize aussi ? il faudrait mettre une fonction différente pour chaque.

signaler à un administrateur
Commentaire de pajanac le 10/04/2006 08:35:49

bonjour a tous
Ce script m'interesse beaucoup pour posé un copyricht sur des image d'un site de vente.Comment l'utilise t'on pour eviter le redimensionnement et que celà soit automatique au chargement de l'image ?
merci

signaler à un administrateur
Commentaire de dunker94_23 le 11/07/2006 22:58:11

Bonjour, je suis débutant en flash, pourtant il me semble tout avoir fait correctement,

qund je charge la page:

http://stan113.free.fr/2/ch_3.test.php

il apparait:


Warning: imagecreatefrompng(./images/log.gif) [function.imagecreatefrompng]: failed to open stream: No such file or directory in /mnt/110/sdc/f/3/stan113/2/ch_3.test.php on line 56

Warning: imagesx(): supplied argument is not a valid Image resource in /mnt/110/sdc/f/3/stan113/2/ch_3.test.php on line 59

Warning: imagesy(): supplied argument is not a valid Image resource in /mnt/110/sdc/f/3/stan113/2/ch_3.test.php on line 60

Warning: imagecopymerge(): supplied argument is not a valid Image resource in /mnt/110/sdc/f/3/stan113/2/ch_3.test.php on line 69

Warning: imagegif() [function.imagegif]: Unable to open './fili-./images/logo.gif' for writing in /mnt/110/sdc/f/3/stan113/2/ch_3.test.php on line 74
Erreur de création

Et pourtant voici le code:


<?
  
//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/log.gif',800,600);
  
?>
<meta name="generator" content="Namo WebEditor v5.0">
<p>&nbsp;</p>

signaler à un administrateur
Commentaire de dunker94_23 le 11/07/2006 23:00:19

De plus, c'est sur cette page que je voulais ajouter les filigranes avec mon logo...

Logo: http://stan113.free.fr/2/images/logo.gif

Page: http://stan113.free.fr/2/ch_3.php3

Merci d'avance pour votre Aide

signaler à un administrateur
Commentaire de trytobegood le 09/01/2008 17:41:09

Merci beaucoup c'est exactement ce que je cherchai.

J'ajouterai que l'image copyright peut être aussi un gif

il faut juste modifier comme ci-dessous.
si png comme dans l'exemple
//création de l'image copyright png
$image_c=imagecreatefrompng($img_cop);

si gif comme dans l'exemple
//création de l'image copyright gif
$image_c=imagecreatefromgif($img_cop);

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

aperçu avant impression, ajouter une image [ par cciiia ] BONJOUR,Voil&#224; mon souci j'aimerai ajouter le logo de mon entreprise juste &#224; l'inpression.Car le logo n'est pas sur ma page php.Je pense qu'i Chemin de l'image dans mysql [ par fabienfsf ] Bonjour,Je voudrais faire en faite j'ai cun&#231;u une petite radio ou on peu ecouter une radio que l'on veut sur le net alord pour sa j'ai fait uneta affichage d'une image [ par refkaben ] Bonjour,Je developpe un site ou les utilisateurs ont un formulaire, dans lequel il va donner le chemin d'une image, cette image sera uppload&#233;e, p lier le formulaire upload avec un autre formulaire [ par maxwellcs ] Bonsoir a tous!! D&#233;ja une petite question est-il possible de rassembler dans un meme formulaire , un upload et des donnees a saisir?? Si la r& php->pdf->probleme image [ par younes371 ] Bonjour, J'ai trouvé un code ds phpcs qui m a été très utile pour mon application,j'ai pu afficher les resultats de la requette dans le tableau(Numero Filigrane [ par PaTaTe ] Bonjour,J'aimerais appliquer un filigrane répété sur une image mais je n'y arrive pas. Pour être plus précis, voici un exemple : j'ai une image toto.j Protection d' image original [ par overbrave ] Salut Dieu du code,Je sais qu'il existe toute sorte de script ou fonction permettant de bloquer le clique droit, etc ...Ces fonction sont senc&#233; n exif_thumbnail pas d' image [ par ImmortalPC ] Salut, je compernds pas o&#249; est l'&#233;rreur, il y a pas d'image du tout. &lt;?php $type = image_type_to_mime_type(IMAGETYPE_JPEG); header('Conte afficher une gallerie photo avec vignette et description (php & mysql) [ par irrisson ] bonjour tout le monde voici ce que j'essaye de r&#233;aliser j'essaye en php d'afficher une gallerie d'image ( image stocker dans un repertoire ) ave Où est l'érreur ? (Image Miniature) [ par ImmortalPC ] Salut, apr&#232;s avoir cherch&#233; une solution pour faire une image miniature en automatique j'ai finalement trouv&#233; un script super Voici le s


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,312 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.