FILIGRANE D'UNE IMAGE

bubuze Messages postés 31 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 25 avril 2006 - 5 avril 2006 à 09:33
trytobegood Messages postés 1 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 9 janvier 2008 - 9 janv. 2008 à 17:41
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/36897-filigrane-d-une-image

trytobegood Messages postés 1 Date d'inscription mardi 28 novembre 2006 Statut Membre Dernière intervention 9 janvier 2008
9 janv. 2008 à 17:41
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);
dunker94_23 Messages postés 2 Date d'inscription mardi 11 juillet 2006 Statut Membre Dernière intervention 11 juillet 2006
11 juil. 2006 à 23:00
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
dunker94_23 Messages postés 2 Date d'inscription mardi 11 juillet 2006 Statut Membre Dernière intervention 11 juillet 2006
11 juil. 2006 à 22:58
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">
pajanac Messages postés 2 Date d'inscription jeudi 12 février 2004 Statut Membre Dernière intervention 2 mars 2009
10 avril 2006 à 08:35
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
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
7 avril 2006 à 15:05
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.
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
5 avril 2006 à 10:48
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é.
bubuze Messages postés 31 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 25 avril 2006
5 avril 2006 à 09:33
joli !
code propre, commenté,
bravo !
Rejoignez-nous