Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/04/2011, 14h33   #1
Membre à l'essai
 
Inscription : décembre 2006
Messages : 95
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : décembre 2006
Messages : 95
Points : 21
Points : 21
Par défaut Modifier, puis remplacer fichier en ligne

Bonjour à tous,

Mon problème est celui-ci:

J'ai un grand nombre de photo en ligne... sur la majorité, j'ai placé un filigrane...
Malheureusement, je me suis rendu compte que certaines n'ont pas ce filigrane...
Alors, je voudrais créer un petit script qui me permettrait de modifier la photo, directement sur le serveur, en y ajoutant le filigrane...

J'ai fait ceci sur base de différents script trouvé sur le net. Ca affiche ma photo avec le filigrane au centre, mais impossible de l'enregistrer sur le serveur, a la place de l'ancienne.

J'ai bien essayé de placer
Code :
if(!imagejpeg($destination, $CheminComplet)){
Mais cela ne marche pas non plus...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
 
 
//On definit l'endroit ou se situe l'image à modifier
$CheminComplet	= "../../Photos/".$RepertoirePhoto."/".$NomDeFichier;
 
 
list($width, $height, $type, $attr) = getimagesize($CheminComplet); 
header("Content-type: image/png");
 
$source = imagecreatefromgif("../../Pictures/Filigrane.gif"); 
$destination = imagecreatefromjpeg($CheminComplet);
 
$details_src = getimagesize("../../Pictures/Filigrane.gif"); 
 
$y = imagesy($destination)-imagesy($source);
$larg_cop=imagesx($source);
$long_cop=imagesy($source); 
 
$dimension = getimagesize($CheminComplet);
 
        $x=(($dimension[0]/2)-($larg_cop/2)); 
        $y=(($dimension[1]/2)-($long_cop/2)); 
 
imagecopymerge($destination,$source, $x, $y, 0, 0, $larg_cop, $long_cop, 40); 
 
if(!imagejpeg($destination)){
 
	echo "Erreur";
}
 
imagedestroy($destination);
imagedestroy($source);
 
//On définit la page ou on renvoie après la modification
 
header('Localhost: '.$PageToGo);
Si quelqu'un pouvait guider un pauvre petit gars.... snif... A votre bon coeur m'sieur dame...
godjojo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2011, 14h44   #2
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur

Informations forums :
Inscription : août 2010
Messages : 587
Points : 861
Points : 861
ton image source est un jpeg, tu mets un header avec png et ton filigrane est un gif...
avec imagecopymerge() je ne crois pas que tu peux fusionner deux images de type différent...
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2011, 14h49   #3
Membre à l'essai
 
Inscription : décembre 2006
Messages : 95
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : décembre 2006
Messages : 95
Points : 21
Points : 21
merci pour ta réponse...

En effet, j'ai modifié
Code :
header("Content-type: image/jpg");
Mais la fusion du fichier jpg et gif fonctionne bel et bien, et aucun changement suite à cette modification...
L'image fusionnée s'affiche bel et bien dans le navigateur, mais impossible de l'enregistrer sur le serveur à la place de l'image non fusionnée...
godjojo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2011, 15h05   #4
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur

Informations forums :
Inscription : août 2010
Messages : 587
Points : 861
Points : 861
dans ce cas reste plus qu'a l'enregistrer dans le répertoire de destination :
imagejpeg ( resource $image [, string $filename [, int $quality ]] )
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2011, 16h10   #5
Membre à l'essai
 
Inscription : décembre 2006
Messages : 95
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : décembre 2006
Messages : 95
Points : 21
Points : 21
... et c'est évidement là que le bas blesse...

Comme je l'ai mis plus haut, cela ne fonctionne pas...

Si je ne met pas de destination, l'image s'affiche dans le navigateur...
Si je place une destination, l'image n'apparait plus, mais ne s'enregistre pas non plus... Que je mette la qualité ou pas d'ailleurs...

Vraiment, comme à chaque fois, il doit y avoir une poussière dans l'engrenage, mais à force d'avoir le nez dessus, je ne vois vraiment pas
godjojo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2011, 16h12   #6
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur

Informations forums :
Inscription : août 2010
Messages : 587
Points : 861
Points : 861
et avec un nom différent dans le chemin complet, ça donne quoi ?
je veux dire au moment de l'enregistrer...
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2011, 16h25   #7
Membre Expert
 
Inscription : septembre 2010
Messages : 1 242
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 242
Points : 1 564
Points : 1 564
Essaies de mettre le chemin complet de destination par rapport au serveur avec
par exemple :
Code :
1
2
$adresse_racine = (substr($_SERVER['DOCUMENT_ROOT'],-1) == '/')? $_SERVER['DOCUMENT_ROOT'] : $_SERVER['DOCUMENT_ROOT'].'/' ;
$CheminComplet	= $adresse_racine."Photos/".$RepertoirePhoto."/".$NomDeFichier;
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 12h38   #8
Membre à l'essai
 
Inscription : décembre 2006
Messages : 95
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : décembre 2006
Messages : 95
Points : 21
Points : 21
Désolé pour le retard, mais un autre travail est venu me prendre tout mon temps... Je reviens donc sur le sujet, qui n'a pas avancé d'un chouilla!

Bref, merci pour ta proposition ABCIWEB, mais ca non plus, ca ne marche pas...

Je ne comprends pas d'ou peut venir le problème...
godjojo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h51.


 
 
 
 
Partenaires

Hébergement Web