begin process at 2012 02 15 05:33:16
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > FILIGRANE D'UNE IMAGE

FILIGRANE D'UNE IMAGE


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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 :15 444

Auteur : f0x

Ecrire un message privé
Site perso
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

 Sources de la même categorie

Source avec Zip COMPTEUR DE CLIQUE PHP AVEC JQUERY par devgoneti
Source avec Zip LIVRE D'OR SIMPLE (POUR DÉBUTANT) par devgoneti
Source avec Zip SCRIPT TRAVAUX POUR VOTRE SITE par FleuryK
Source avec Zip Source avec une capture EL COYOTOS LIVRE D'OR PHP 5 par elcoyotos
COMPTEUR DE VISITE - FICHIER TXT - CODE MINIMAL par SuperChouquette

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture GESTIONNAIRE DE NEWS BASIQUE AVEC UPLOAD D'IMAGES par cod57
Source avec Zip Source avec une capture UPLOADEUR DE FICHIERS MULTIPLES V1 par cod57
CLASS GALERIE PHOTO par Xiryl
Source avec Zip [PHP5] PHPDRAW - LE PHOTOSHOP DE PHP (OU PRESQUE...) par malalam
Source avec Zip CLASS IMAGE FLOODÉ ENTIÈREMENT PARAMÈTRABLE par babid

Commentaires et avis

Commentaire de bubuze le 05/04/2006 09:33:08

joli !
code propre, commenté,
bravo !

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

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.

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

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>

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

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 données envoi mail [ par eva4 ] hello vous tous. J'ai un petit problème. lors d'envoie de messages (avec photo dans le corp de texte) lorsqu'on fait un clic droit sur l'image, il ap 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 mon script crée mes fichiers dans un endroit inattendu [ par angelimad ] bonjour tout le monde. mon problème c'est que j'ai un site php hébergé sur un serveur Linux. mon script upload le fichier via le formulaire du client formulaire d'ajout d'image de l'éditeur visuel [ par jobhome ] Bonjour, Le cherche un formulaire d'ajout d'image avec lequel on peut modifier l'image en ligne. Merci pour votre aide


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,089 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales