cs_fanfouer
Messages postés
209
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
27 janvier 2008
18 févr. 2006 à 16:14
Oui, et j'ai trouvé entre temps...
regarde :
<?
$filePath='MonImage.png'; // Chemin de l'image
//Déclaration Array
$NbCouleur = 20;
$couleur_orig = array(
"eau"=>array("59AFDD", "62A3C5", "5BABD6"),
"foret"=>array("A3DBB0"),
"Ilots"=>array("FFE3B1"),
"Fond"=>array("FFF3DC",
"BordsRte"=>array("#87817F",
"route60"=>array("FFA985",
"route40"=>array("FFF991",
"route20"=>"FFFFFF",
"chemin"=>"E3D1BA");
$couleur_new = array(
"eau"=>array("000000"),
"foret"=>"000000",
"Ilots"=>"000000",
"Fond"=>"000000",
"BordsRte"=>"FFFFFF",
"route60"=>"000000",
"route40"=>"000000",
"route20"=>"000000",
"chemin"=>"000000");
$couleur_type = array("eau", "foret", "Ilots", "Fond", "BordsRte", "route60", "route40", "route20", "chemin");
img_color($filePath,$couleur_orig, $couleur_new, $couleur_type, $NbCouleur);
function img_color($filePath,$couleur_orig, $couleur_new, $couleur_type, $NbCouleur){
// crée l'image et compte ses couleurs
$im = img_create($filePath);
if(!empty($im)){
$k=imagecolorstotal($im);
// si l'image est en truecolor, convertit en palette
if(!$k){
imagetruecolortopalette($im,true,65536*256);
}
for($i=0;$i<$NbCouleur;$i++){
$type = $couleur_type[$i];
for($j=0;$j<10;$j++){
//--------------------------------- COULEUR ORIGINALE --------------------------------------------
$couleurOrig = $couleur_orig[$type][$j];//On sort la valeur de la couleur a changer des array déclarés plus haut
//Décomposition composantes
if($couleurOrig[0]=='#'){
$couleurOrig = substr($couleurOrig,1);//On vire le '#" si il existe en début de chaine
}
$rougeOrig = hexdec(substr($couleurOrig,0,2));//On sort la valeur en Base 10 de la veleur du rouge
$vertOrig = hexdec(substr($couleurOrig,2,2));//On sort la valeur en Base 10 de la veleur du vert
$bleuOrig = hexdec(substr($couleurOrig,4,2));//On sort la valeur en Base 10 de la veleur du bleu
//Obentention de l'index
$couleurOrigIndex = imagecolorexact ($im, $rougeOrig, $vertOrig, $bleuOrig);//On récupere l'index de la couleur a changer
//--------------------------------- NOUVELLE COULEUR --------------------------------------------
$couleurNew = $couleur_new[$type][0];//On sort la valeur de la couleur a changer des array déclarés plus haut
//Décompostion composantes
if($couleurNew[0]=='#'){
$couleurNew = substr($couleurNew,1);//On vire le '#" si il existe en début de chaine
}
$rougeNew = hexdec(substr($couleurNew,0,2));//On sort la valeur en Base 10 de la veleur du rouge
$vertNew = hexdec(substr($couleurNew,2,2));//On sort la valeur en Base 10 de la veleur du vert
$bleuNew = hexdec(substr($couleurNew,4,2));//On sort la valeur en Base 10 de la veleur du bleu
//On change de couleur
imagecolorset($im, $couleurOrigIndex, $rougeNew, $vertNew, $bleuNew);
}
}
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
}else{
echo'image non créee..';
}
}
function img_create($n){if(!file_exists($n)){echo"pas d'image";}
[mailto:$z=@imagecreatefrompng($n $z=@imagecreatefrompng($n]);
return $z;}
?>