cs_fanfouer
Messages postés209Date d'inscriptionmercredi 26 mai 2004StatutMembreDernière intervention27 janvier 2008
-
18 févr. 2006 à 12:39
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 2007
-
18 févr. 2006 à 17:20
Bonjour,
Je cherche a faire un petit script à l'aide de la librairie GD pour changer les couleurs d'une image que je lui passe à l'aide d'un formulaire d'upload.
Je suis hebergé chez OVH et la librairie GD est activée.
En guise de précision, j'aimerai que le script prenne une couleur que j'aurais pris le soin de définir à l'avance et me la remplace avec une autre définie elle aussi.
cs_fanfouer
Messages postés209Date d'inscriptionmercredi 26 mai 2004StatutMembreDernière intervention27 janvier 2008 18 févr. 2006 à 13:57
Effectivement c'est pas mal. Ca peut servir a trouver les couleurs a changer.
Reste maintenant a trouver la fonction permettant de changer la couleur car il s'agit ici de remplacer une couleur présente dans l'aimge par une autre que j'aurais donnée moi dans le script.
Tout ca dans le but de changer totalement les couleurs de l'image.
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;}
?>
Vous n’avez pas trouvé la réponse que vous recherchez ?