[PHP] travail de colorisation/création d'image... [ - Job's Done - ]

travail de colorisation/création d'image... [ - Job's Done - ] [PHP] - PHP - Programmation

Marsh Posté le 02-05-2003 à 22:06:38    

voilà le topo :  
 
j'ai une image plan.png qui représente une planisphère où les continents sont en gris et l'eau en blanc.
 
l'idée et le besoin est de coloriser une certaine partie de la carte en fonction des choix de l'utilisateur.
donc en fait, ça serait de recréer le fichier à chaque fois, mais avec des pixels de couleurs à tel ou tel endroit quand tel ou tel pays est selectionné.
 
si vous savez comment faire ou que vous voulez tout simplement participer, je suis 100% ouvert !!!
 
allez, @+, Kamui


Message édité par xkamui le 04-05-2003 à 18:09:34
Reply

Marsh Posté le 02-05-2003 à 22:06:38   

Reply

Marsh Posté le 02-05-2003 à 22:12:26    

xkamui a écrit :

voilà le topo :  
 
j'ai une image plan.png qui représente une planisphère où les continents sont en gris et l'eau en blanc.
 
l'idée et le besoin est de coloriser une certaine partie de la carte en fonction des choix de l'utilisateur.
donc en fait, ça serait de recréer le fichier à chaque fois, mais avec des pixels de couleurs à tel ou tel endroit quand tel ou tel pays est selectionné.
 
si vous savez comment faire ou que vous voulez tout simplement participer, je suis 100% ouvert !!!
 
allez, @+, Kamui


 
moi je dis flash !!


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 02-05-2003 à 22:13:53    

oui, mais en fait non, c'est pour un site ou le flash est banni....  :(


Message édité par xkamui le 02-05-2003 à 22:14:01
Reply

Marsh Posté le 02-05-2003 à 22:17:58    

:sweat:  ... 'tain .... :/
 
 
tu t'es renseigné sur les librairies gd et sur les fonctions "images" ?


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 02-05-2003 à 22:19:11    

j'y suis actuellement, mais spa trop simple tout ça...

Reply

Marsh Posté le 02-05-2003 à 22:22:59    

'tite contrib' : http://dev.nexen.net/docs/php/annotee/image.intro.php


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 02-05-2003 à 23:01:39    

ok, normalement, c'es bon, j'ai déjà réussit à créer un fichier image png qui comporte 50% de noir et 50% de bleu
 

Code :
  1. <?
  2. // Création de l'image
  3. $pic=ImageCreate(400,160);
  4. ImageFilledRectangle($pic, 0, 0, 200, 160, ImageColorAllocate($pic, 0, 0, 0));
  5. ImageFilledRectangle($pic, 200, 0, 400, 160, ImageColorAllocate($pic, 0, 0, 204));
  6. ImagePNG($pic,"./pngs/map.png" );
  7. ?>
  8. <img src="./pngs/map.png" border="0" />


 
il me reste plus qu'a lui dire que tel ou tel pixel sont blanc ou gris pour former ma mapmonde

Reply

Marsh Posté le 03-05-2003 à 05:02:16    

ayéééé c'est finit !!!!
voici le résultat tout de même...
 
http://www.creaweb-formation.com/grondin.marc/monde.png
 
merci encore @ tous !!
 
@+ Kamui

Reply

Marsh Posté le 03-05-2003 à 05:28:08    

??.......

Reply

Marsh Posté le 03-05-2003 à 06:41:59    

petit problème persistant...
 
j'ai bien réuissi à faire toute ma mapmonde comme il faut, ligne par ligne, rectangle de pixels par rectangle de pixels, et je la génère automatiquemant avec des boucles.
 
maintenant, ce que je veux faire c'est mettre la france en bleu... alors, j'ai récupéré les coordonnéees de la france et je l'ai générée elle aussi avec des boucles de mannière à ce que les pixels de la 'france.bleue' remplacent ceux de la 'france.grise' actuelle...
Malheureusement, il n'y a aucun changement.
 
par acquis de conscience, j'ai essayé uneméthode un peu bourrin, je lui ai dit de ma créer un rectangle bleu de 100px² au beau milieu de mon image : résultat, j'ai bien mon carré, mais il est gris !!! de la même couleur que ma map monde...
 
le prochain post contiens le code pour pouvoir vous aider à comprendre.
 
j'aurais vraiment besoin d'aide là, lol
 
allez, @+
Kamui

Reply

Marsh Posté le 03-05-2003 à 06:41:59   

Reply

Marsh Posté le 03-05-2003 à 06:48:46    

comme explicité, voici le code :
 

Code :
  1. <?
  2. // Définition des coordonnées (en tout, 161 lignes)
  3. $line=array(
  4. "0-102-107-138-159-401",
  5. // coupé pour la lisibilité
  6. "0-137-139-401"
  7. );
  8. // Création de l'image
  9. $fic=ImageCreate(401,count($line));
  10. ImageFilledRectangle($fic, 0, 0, 401, count($line), ImageColorAllocate($fic, 255, 255, 255));
  11. for ($i=0; $i<count($line); $i++)
  12. {
  13. $xy=explode ("-", $line[$i]);
  14. for ($a=0; $a<count($xy); $a++)
  15.   {
  16.   if ($xy[$a]==401){break;}
  17.   if (($a%2)==1)
  18.    {
  19.    ImageFilledRectangle($fic, $xy[$a], $i, ($xy[($a+1)]-1), $i, ImageColorAllocate($fic, 204, 204, 204));
  20.    }
  21.   }
  22. }
  23. // création d'un carré quelconque
  24. ImageFilledRectangle($fic, 100, 40, 300, 120, ImageColorAllocate($fic, 51, 102, 153));
  25. // Définition du nom de l'image
  26. ImagePNG($fic,"./pngs/monde.png" );
  27. ?>
  28. <img src="./pngs/monde.png" border="0" />


Message édité par xkamui le 03-05-2003 à 06:49:16
Reply

Marsh Posté le 04-05-2003 à 18:13:41    

ok, tout est bon et tout va bien.
 
voici en quelques mots ce que je fait.
 

  • je génére mon fichier png de mapmonde avec mon script (pour éviter un alaising sur les pixels) et je récupère ce fichier png.
  • je lui ajoute 3 pixels de couleur différente en bas, et je l'enregistre de nouveau, pour qu'il 'reconnaisse' les trois couleurs.
  • J'ouvre le fichier png avec la fonction php : 'ImageCreateFromPNG' et je lui dessine dessus les coordonénes correspondant aux pays désirés.

voilà, c'est tout !!
 
Merci encore à tout les participants de ce post !!
 
allez, @+
Kamui


Message édité par xkamui le 04-05-2003 à 18:14:07
Reply

Marsh Posté le 04-05-2003 à 18:18:20    

merci à toi aussi  :hello:


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed