Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Images > GD
GD Forum d'entraide pour l'extension GD permettant de manipuler des images en PHP. Avant de poster -> tutoriels GD
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 19/10/2007, 16h36   #1
Nouveau Membre du Club
 
Étudiant
Inscription : juin 2004
Messages : 78
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2004
Messages : 78
Points : 34
Points : 34
Par défaut superposition avec imagecopymerge

Bonjour

Je suis en train de réaliser une carte de géo-localisation des membres.
J'ai donc créé (ou plutot modifié) une carte de france pour utiliser imagefilltoborder.

Je me base sur >> cette map. <<

J'exécute ensuite ma moulinette pour récupérer le nombre de membres par département et colorer ces derniers.

Ce qui me pose problème c'est ensuite pour greffer la légende, le numéro des départements, et en bas a gauche le nombre de personnes par pays (pas encore implanté dans le code)
>> L'image que je dois incorporer. << (les chiffres des départements sont en blancs ^^

Je me suis penché sur imagecopymerge, mais jai beau avoir tester gif et png (il me faut de la transparence) ou la valeur du dernier argument (j'avoue ne pas trop avoir compris, c'est l'opacité de la source pour la fusion avec la destination?)

Voici le script qui génère la map :
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 
<?php 
 
// {inclusion de la classe sql etc..}
 
$map 	= "./img/france_empty.png";
$output = "carte.png";
$num_dept = "./img/carte_dept.png";
 
 
list($width, $height, $type, $attr) = getimagesize($map);
$img 	= 	imagecreatefrompng($map);
$img2 	= 	imagecreatefrompng($num_dept);
 
 
// LES COULEURS
$border = 	ImageColorAt ($img, 100, 100);  // Pour les couleurs du bord... choisir blanc avec imagecolorallocate ne marche pas T_T
//$border = 	imagecolorallocate($img, 255, 255, 255);
$black 	= 	imagecolorallocate($img, 0, 0, 0); // pour le texte
 
$ciel 	= 	imagecolorallocate($img,200,200,255); // 1 ou 2
$green 	= 	imagecolorallocate($img, 0, 255, 0); // 3 à 5
$jaune 	= 	imagecolorallocate($img,220,232,0); // 5 à 10
$orange = 	imagecolorallocate($img,250,157,0); // 11 à 25
$red 	= 	imagecolorallocate($img, 255, 0, 0); // + de 25
 
 
$query = $mysql->query_mysql("SELECT count(departement) AS nbmembres, nom_dept, departement, X, Y FROM `geo_dept`, `membres`, `departements` WHERE pays='FR' AND departement=id_dept AND id_dept=code GROUP BY departement");
// REMPLISSAGE DES DEPARTEMENTS
// imagefilltoborder ( resource $image, int $x, int $y, int $border, int $color )
while ($row = mysql_fetch_assoc($query)) {
	$nbmembres = $row['nbmembres'];
	if($nbmembres < 3) {
		$color = $ciel;
	} elseif($nbmembres > 2 && $nbmembres < 6) {
		$color = $green;
	} elseif($nbmembres > 5 && $nbmembres < 11) {
		$color = $jaune;
	} elseif($nbmembres > 10 && $nbmembres < 26) {
		$color = $orange;
	} else {
		$color = $red;
	}
 
	imagefilltoborder($img, $row['X'], $row['Y'], $border, $color);	
}
	mysql_free_result($query);
 
// INSCRUSTATION DES NUMEROS DE DEPARTEMENTS ET DE LA LEGENDE
// imagecopymerge ( resource $dst_im, resource $src_im, int $dst_x, int $dst_y, int $src_x, int $src_y, int $src_w, int $src_h, int $pct )
imagecopymerge($img, $img2, 0, 0, $width, $height, 0, 0, $width, $height, 0);
 
imagepng($img,$output);
 
imagedestroy($img);
imagedestroy($img2);
Et le rendu final est >> ICI <<

C'est comme si la fusion ne s'était pas effectuée

Si quelqu'un pourrait m'aider, je connaissais pas du tout GD et je découvre les fonctions au fur et a mesure et la je bloque vraiment...

Merci d'avance DD.
ddelec24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 20h20   #2
Nouveau Membre du Club
 
Étudiant
Inscription : juin 2004
Messages : 78
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2004
Messages : 78
Points : 34
Points : 34
bon j'ai "un peu" avancer dans le sens ou jai mes 2 images qui se superposent.

Le soucis, c'est tout tout les textes et mon trait ne s'affichent pas, ca donne des carrés



j'ai rajouté ceci apres les imagecreatefrompng:

Code :
1
2
3
4
imagecolortransparent($img2,imagecolorat($img2,0,0));
 
imagesavealpha($img2, true);
imagealphablending($img2, true);
et le résultat, bein >> ICI <<

je vois vraiment pas
avec imagecopy jai soit l'un soit lautre la transparence marche pas meme avec ce que jai rajouté.

bref si quelqu'un a une idée ou s'est déjà confronter a ce genre de problème...
merci

EDIT: problème résolu...
jai juste utilisé imagecolortransparent mais avec mon image a incruster en gif...
va savoir pourquoi ya des carrés avec le png
4 jours pour y arrivé et bein heureusement que je suis pas payer
ddelec24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h43.


 
 
 
 
Partenaires

Hébergement Web