The Lootrophile Posté(e) le 8 juin 2005 Partager Posté(e) le 8 juin 2005 Hello, Je suis à la recherche d'une méthode pour superposer plusieurs images, les unes sur les autres via PHP. Je sais fusionner deux images, ça ne pose pas de problème, mais des que je souhaite en rajouter une deuxieme par dessus la première, elle la remplace purement et simplement.. Mon code ressemble à ça : header ("Content-type: image/jpeg"); // Image en jpeg // On charge les images $source = imagecreatefromjpeg("images/$hair"); // Le logo est la source $destination = imagecreatefromjpeg("images/base.jpg"); // La photo est la destination $shadow_eye_left = imagecreatefromjpeg("images/$shl"); // La photo est la destination // Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image $largeur_source = imagesx($source); $hauteur_source = imagesy($source); $largeur_destination = imagesx($destination); $hauteur_destination = imagesy($destination); $destination_x = $largeur_destination; $destination_y = $hauteur_destination; // On met le logo (source) dans l'image de destination (la photo) imagecopymerge($destination, $source, 0, 0, 0, 0, $largeur_source, $hauteur_source, 100); // On affiche l'image de destination qui a été fusionnée avec le logo imagejpeg($destination); Si vous avez une petite réponse à m'apporter, ça serait sympa. Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
afbilou Posté(e) le 9 juin 2005 Partager Posté(e) le 9 juin 2005 T'as été voir ? imagecopymerge 1. Tu dois creer une image en vraie couleur (imagecreatetruecolor) 2. Y copier ton image de depart avec imagecopy 3. Utiliser imagecopymerge pour superposer une autr eimage (en faisant varier l'argument pct entre 0 et 100 pour regler l'opacite) 4. Utiliser imagejpeg si tu travailles sur des images jpeg pour sauvegarder l'image truecolor que tu a crees dans un fichier jpeg. Lien vers le commentaire Partager sur d’autres sites More sharing options...
SnipX Posté(e) le 9 juin 2005 Partager Posté(e) le 9 juin 2005 Sinon sers toi des balises <div> en html, j'ai eu le même problème l'année dernière; j'ai lutté. Sur le net tu vas trouver; essaie de voir si tu trouves pas je t'expliquerais ce soir! (pas le temps la je pars en épreuve :'() Lien vers le commentaire Partager sur d’autres sites More sharing options...
The Lootrophile Posté(e) le 9 juin 2005 Auteur Partager Posté(e) le 9 juin 2005 Bonne m... pour tes épreuves, may the inpact force be with you. Sinon, pour la méthode des div ça ne sera pas très facile à utiliser je pense, je dois supperposer des images en les plaçant assez arbitrairement, et ça sera un méli-mélo de div (une dizaine d'images qui se supporsent, etc..) en plus, certains navigateurs (que je ne citerais pas ) ont quelques problemes de compabilité avec les balises de potitionnement gérées par CSS. Enfin, je vais voir avec la première solution proposée, sinon, je devrais revenir à ta méthode. Merci Sinon j'essaie ta méthode afbilou, merci. Lien vers le commentaire Partager sur d’autres sites More sharing options...
The Lootrophile Posté(e) le 9 juin 2005 Auteur Partager Posté(e) le 9 juin 2005 Ca marche farpaitement, merci beaucoup à vous deux :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
The Lootrophile Posté(e) le 9 juin 2005 Auteur Partager Posté(e) le 9 juin 2005 J'ai parlé un peu trop vite en fait, maintenant, quand je supperpoe deux images, celle qui se trouve en dessous de l'autre est coupée, enfin, ce n'est pas facile à expliquer, vous pourrez voir le problème ici : CliC CLiC CliC (selectionnez n'importe quel champ, et validez..) Mon code est le suivant : header ("Content-type: image/png"); $im = @imagecreatetruecolor (500, 752) or die ("Impossible de crée un flux d'image GD"); $im_src = ImageCreateFrompng("emma_fake.png"); $hair = ImageCreateFrompng("images/$hair"); $yeux = ImageCreateFrompng("images/$eyes"); ImageCopy($im,$im_src,5,5,1,1,19,6); imagecopymerge($im_src, $hair, 0, 0, 0, 0, 500, 752, 100); imagecopymerge($im_src, $yeux, 200, 300, 0, 0, 500, 752, 100); imagepng($im_src); En plus ma transparence PNG ne marche pas (la partie blanche devrait etre transparente..) Quelqu'un peut-il m'aider ? Merci beaucoup d'avance. Lien vers le commentaire Partager sur d’autres sites More sharing options...
afbilou Posté(e) le 9 juin 2005 Partager Posté(e) le 9 juin 2005 Il y a comme un probleme : imagecopymerge($im_src, $hair, 0, 0, 0, 0, 500, 752, 100); imagecopymerge($im_src, $yeux, 200, 300, 0, 0, 500, 752, 100); imagepng($im_src); C'est pas $im au lieu de $im_src que tu devrais utiliser ? Euh sinon je viens de comprendre ce que tu veux faire (un lien est parfois utile ). Je pensais que tu voulais qu'une image soit ajoutée avec une legere transparence. Puisque ce n'est visiblement pas le cas tu n'as pas besoin de imagecopymerge. imagecopy suffit pour toi. Ton erreur c'est de ne pas utiliser le bon identifiant d'image lors de la copie. $im = imagecreatetruecolor(...); $src = imagecreatefrompng(...); $hair = imagecreatefrompng(...); $yeux = imagecreatefrompng(...); imagecopy($im , $src , ...); imagecopy($im , $hair , ...); imagecopy($im , $yeux , ...); imagepng($im); imagedestroy($im); imagedestroy($src); imagedestroy($hair); imagedestroy($yeux); Lien vers le commentaire Partager sur d’autres sites More sharing options...
The Lootrophile Posté(e) le 9 juin 2005 Auteur Partager Posté(e) le 9 juin 2005 On se marie quand tu veux Merci beaucou. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.