Page 1 sur 1

Passer une image créée en php à une autre page

Posté : 02 sept. 2005, 11:51
par CyberDenix
Bonjour, je souhaite afficher une carte de france avec des départements cliquables.

J'ai deux fichiers:

- area_carte.php,
----------------------------
Ouvre le fichier contenant les coordonnées des points à relier, et dans la meme boucle dessine les zones dans mon image de fond + definit les zones cliquables dans ma MAP, puis appelle 'image_carte.php' et place les zones cliquables par dessus.

- image_carte.php,
-----------------------------------
Qui affiche l'image de la carte de france

J'appelle donc dans ''area_carte.php' la page 'image_carte.php' qui va me dessiner mon image à partir de $im :
echo "<IMG SRC='image_carte.php?im=$im' USEMAP='#map1'>";

Mais apparement mon $im ne passe pas, car lorsque j'affiche la source, j'obtiens :
<IMG SRC='image_carte.php?im=Resource id #2' USEMAP='#map1'>

1) Qu'est-ce que Ressource id #2 ?
2) Comment passer une image en paramètre à mon autre page php (image_carte.php) ?
3) Ou bien y a-t-il un autre moyen de faire ?

Merci d'avance,

Je vous mets le code de area_carte épuré à disposition :
<?
ini_alter("display_errors",true);

// Dimension
if (isset($_GET['dim']))          {$dim=$_GET['dim'];}
else                              {$dim=500;}
// Initialise l'image à dessiner en 500 points sur 500
//header('Pragma: no-cache');
//header('Expires: 0');
$im=imagecreate($dim,$dim);
$white=imagecolorallocate($im,255,255,255);
$black=imagecolorallocate($im,0,0,0);
imagefilledrectangle($im,0,0,1023,1023,$white);

(...)

$indice_departement=0;
$x_precedent = "";
$y_precedent = "";
echo "<head><title>mappy</title></head>\n";
echo "<MAP NAME='map1'>";
$f=fopen('fichiers/dep_france_dom.mif','rb');
// Pour chaque ligne du fichier dep_france_dom.mif (ce fichier contient les coordonnées)
while(!feof($f))
{
  $buf=fgets($f);
  $num=explode('  ',$buf);
  if($num[0]=='Region')
  {
    $indice_departement++;
    if ($indice_departement < 97)
    {      
      $numdep = $departement[$indice_departement];
      $nombre_regions=(int)$num[1];
      // Lecture des coordonnées des points
      for($indice_region=1;($indice_region<=$nombre_regions)&&!feof($f);$indice_region++)
      {
        $nombre_points=trim(fgets($f));
        $points=array();
        $points2=array();
        echo "\n  <AREA HREF='area_carte.php?dim=$dim&dept=$numdep' SHAPE='poly' COORDS='\n";
        for($indice_point=1;($indice_point<=$nombre_points)&&!feof($f);$indice_point++)
        {
          $point = explode( ' ', trim( fgets($f) ) );
          if (($point[0]!=$x_precedent) || ($point[1]!=$y_precedent))
          {
            $points[] = $x_precedent = round( ( $point[0] - $x_base ) / $x_echelle );
            $points[] = $y_precedent = $dim - round( ( $point[1] - $y_base ) / $y_echelle );
            if ($indice_point == 1)
              echo "$x_precedent,$y_precedent";
            else
              echo ", $x_precedent,$y_precedent";
          }         
        }
        // On affiche le département dans l'image notée $im
        $couleur=$couleur_region[$code_region[$departement[$indice_departement]]]; 
        imagefilledpolygon($im,$points,$nombre_points,$couleur);
        imagepolygon($im,$points,$nombre_points,$black);
        echo "'>";
      }
    }
  }
}
fclose($f);

//-----------------
//C'est là que ca passe pas pour mon histoire du Resource id #2
//-----------------
echo "\n</MAP>\n<IMG SRC='image_carte.php?dim=$dim&im=$im' 
USEMAP='#map1'>";

?>

Et voici image_carte.php :
if (isset($_GET['dim']))          {$dim=$_GET['dim'];}
else                              {$dim=500;}
if (isset($_GET['im']))           {$im=$_GET['im']; imagepng($im);}

Posté : 02 sept. 2005, 12:04
par CyberDenix
Je précise que lorsque j'affiche mon image dans 'area_carte.php', mon image s'affiche sans problème.
Mais je pense que je suis obligé dans mon cas de la faire afficher par une autre page, et donc c'est lors du passage de ladite image en paramètre à cette autre page que ca cacatte.