25-10-2007, 06:42 PM
Salut,
voila se sripte .... en vrac
il prend une image pour cree ma base de donné x y couleur
et
il cree une image a partir de x,y,Couleur
//Dessine dans $immage un point de coordonnées ($x,$y) et de couleur = a la image (carte) source
ImageSetPixel ($image, $start_x, $start_y, $color_index);
voila se sripte .... en vrac
il prend une image pour cree ma base de donné x y couleur
et
il cree une image a partir de x,y,Couleur
//Dessine dans $immage un point de coordonnées ($x,$y) et de couleur = a la image (carte) source
ImageSetPixel ($image, $start_x, $start_y, $color_index);
Code PHP :
<?php
//header ("Content-type: image/png");
// afichage de l'image source
echo"<h1>Image Souce</h1><br>";
echo "<img src='teste.png' border='1'><br>";
// on ouvre une image source
$im = imagecreatefrompng('teste.png');
//la largeur de l'image
$max_x=imagesx($im);
//la hauteur de l'image
$max_y=imagesy($im);
//nombre_couleur
$nombre_couleur=imagecolorstotal($im);
// info sur la carte
echo "Image (X/Y) :".$max_x."x".$max_y."<br>";
echo "Nombre couleur :".$nombre_couleur."<hr>";
// cree une image sible
$image=imagecreate($max_x,$max_y);
// Palette de couleur de l'image source
echo "<br><hr><br>";
echo"<h1>Palette de Image de Souce</h1><br>";
echo "<table border=\"1\" cellpadding=\"2\" cellspacing=\"2\" width=\"100\"><tbody>";
$index_couleur=0;
while ($index_couleur<$nombre_couleur)
{
$color_tran = imagecolorsforindex($im, $index_couleur);
$red=dechex($color_tran[red]); if(strlen($red) < 2) {$red="0".$red;}
$green=dechex($color_tran[green]); if(strlen($green) < 2) {$green="0".$green;}
$blue=dechex($color_tran[blue]); if(strlen($blue) < 2) {$blue="0".$blue;}
$color= "#".strtoupper($red.$green.$blue);
// cree la palette de image sible
$col=imagecolorallocate($image,$color_tran[red],$color_tran[green],$color_tran[blue]);
echo "<tr>";
echo " <td bgcolor='".$color."'>$index_couleur </td>";
echo " <td>"; echo $color; echo"</td>";
echo " <td> .</td>";
echo "</tr> \n";
++$index_couleur;
}
echo" </tbody></table>\n";
// afichage de la X/Y/couleur pour la base
echo "<br><hr><br>";
echo"<h1>Data_Base</h1>Requête SQL<br>";
// lecture de l'image source point par point
$start_x = 0;
$start_y = 0;
while ($start_y<$max_y)
{
while ($start_x<$max_x)
{
$color_index = imagecolorat($im, $start_x, $start_y);
$color_tran = imagecolorsforindex($im, $color_index);
// info pour la base de donnée
//echo "x=".$start_x." y=".$start_y." ".$color_tran[red]." ".$color_tran[green]." ".$color_tran[blue]." ".$color_index;
echo" INSERT INTO `carte` ( `carte_x` , `carte_y` , `carte_z` , `carte_type` ) VALUES ('".$start_x."', '".$start_y."', '0', '".$color_index."'); <br>";
//Dessine dans $immage un point de coordonnées ($x,$y) et de couleur = a la image (carte) source
ImageSetPixel ($image, $start_x, $start_y, $color_index);
++$start_x;
}
++$start_y;
$start_x=0;
}
//enregistre l'image sible
$filename="carte_2.png";
imagepng($image,$filename);
// afichage de l'image sible
echo "<br><hr><br>";
echo"<h1>Image de Temoin</h1><br>";
echo "<img src='".$filename."' border='1'><br>";
//nombre_couleur de l'image sible pour control
echo "Nombre couleur :".imagecolorstotal($image)." pour control<hr>";
echo "<br><hr><br>";
// vide la memoire des imges
ImageDestroy($image);
imagedestroy($im);
?>