begin process at 2012 02 09 12:51:17
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > COLORISE UNE IMAGE AVEC GD

COLORISE UNE IMAGE AVEC GD


 Information sur la source

Note :
5 / 10 - par 1 personne
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Niveau :Débutant Date de création :17/12/2004 Vu :3 510

Auteur : piedpierre

Ecrire un message privé
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

 Description

Fonction permettant la coloration d'une image de type varié avec une couleur,
convertit au besoin l'image true color en image colorisable.

Source

  • <?
  • $n='c:/images/img02.gif'; // Chemin de l'image
  • $color='FF00FF'; // Couleur du filtre(en hexadecimal)
  • img_color($n,$color); // Appel de la fonction
  • function img_color($n,$color){
  • // crée l'image et compte ses couleurs
  • $im=img_create($n);if(!empty($im)){$k=imagecolorstotal($im);
  • // si l'image est en truecolor, convertit en palette
  • if(!$k){imagetruecolortopalette($im,true,65536*256);$k=imagecolorstotal($im);}
  • // Récupère les composantes RGB de $color
  • if($color[0]=='#'){$color=substr($color,1);}
  • $r=hexdec(substr($color,0,2))/255;$v=hexdec(substr($color,2,2))/255;$b=hexdec(substr($color,4,2))/255;
  • // on décompose la couleur RVB ( .299 + .587 + .114 = 1 )* repectivement par leurs composantes R & V & B
  • for($i=0;$i<$k;$i++){$c=imagecolorsforindex($im,$i);
  • $rouge=.299 * ($c['red'])+ .587 * ($c['green'])+ .114 * ($c['blue']);
  • $vert =.299 * ($c['red'])+ .587 * ($c['green'])+ .114 * ($c['blue']);
  • $bleu =.299 * ($c['red'])+ .587 * ($c['green'])+ .114 * ($c['blue']);
  • // pour chaque couleur de palette on applique le filtre
  • imagecolorset($im,$i,$rouge*$r,$vert*$v,$bleu*$b);}
  • // le header comme quoi ce document est une image jpg et on
  • //affiche l'image : imagejpeg($im,'chemin d'écriture du fichier',int(qualité));
  • header('Content-type: image/jpg');imagejpeg($im);
  • imagedestroy($im);}else{echo'image non créee..';}}
  • function img_create($n){if(!file_exists($n)){echo"pas d'image";}
  • $z=@imagecreatefromjpeg($n);
  • if(empty($z)){$z=@imagecreatefrompng($n);}
  • if(empty($z)){$z=@imagecreatefromgif($n);}
  • if(empty($z)){$z=@imagecreatefromwbmp($n);}
  • if(empty($z)){$z=@imagecreatefromxpm($n);}
  • if(empty($z)){$z=@imagecreatefromxbm($n);}
  • if(empty($z)){$z=@imagecreatefromgd2($n);}
  • if(empty($z)){$z=@imagecreatefromgd($n);}
  • if(empty($z)){$z=@imagecreatefromstring($n);}
  • if(empty($z)){$z=@imagecreatefromgd2part($n);}
  • return $z;}?>
<? 
$n='c:/images/img02.gif';	// Chemin de l'image
$color='FF00FF';			// Couleur du filtre(en hexadecimal)
img_color($n,$color);		// Appel de la fonction

function img_color($n,$color){
// crée l'image et compte ses couleurs
$im=img_create($n);if(!empty($im)){$k=imagecolorstotal($im);
// si l'image est en truecolor, convertit en palette
if(!$k){imagetruecolortopalette($im,true,65536*256);$k=imagecolorstotal($im);}
// Récupère les composantes RGB de $color
if($color[0]=='#'){$color=substr($color,1);}
$r=hexdec(substr($color,0,2))/255;$v=hexdec(substr($color,2,2))/255;$b=hexdec(substr($color,4,2))/255;
// on décompose la couleur RVB ( .299 + .587 + .114 = 1 )* repectivement par leurs composantes R & V & B
for($i=0;$i<$k;$i++){$c=imagecolorsforindex($im,$i);
$rouge=.299 * ($c['red'])+ .587 * ($c['green'])+ .114 * ($c['blue']);
$vert =.299 * ($c['red'])+ .587 * ($c['green'])+ .114 * ($c['blue']);
$bleu =.299 * ($c['red'])+ .587 * ($c['green'])+ .114 * ($c['blue']);
// pour chaque couleur de palette on applique le filtre
imagecolorset($im,$i,$rouge*$r,$vert*$v,$bleu*$b);}
// le header comme quoi ce document est une image jpg et on 
//affiche l'image : imagejpeg($im,'chemin d'écriture du fichier',int(qualité));
header('Content-type: image/jpg');imagejpeg($im);
imagedestroy($im);}else{echo'image non créee..';}}

function img_create($n){if(!file_exists($n)){echo"pas d'image";}
$z=@imagecreatefromjpeg($n);
if(empty($z)){$z=@imagecreatefrompng($n);}
if(empty($z)){$z=@imagecreatefromgif($n);}
if(empty($z)){$z=@imagecreatefromwbmp($n);}
if(empty($z)){$z=@imagecreatefromxpm($n);}
if(empty($z)){$z=@imagecreatefromxbm($n);}
if(empty($z)){$z=@imagecreatefromgd2($n);}
if(empty($z)){$z=@imagecreatefromgd($n);}
if(empty($z)){$z=@imagecreatefromstring($n);}
if(empty($z)){$z=@imagecreatefromgd2part($n);}
return $z;}?>

 Conclusion

Alors une image en true color retourne 0 sur la fonction imagecolorstotal
et si l'image n'est pas du type approprié les fonctions createfrom retournent
0 également...mais bon ya quand meme le choix..


 Sources du même auteur

RECUPERER LES VARIABLES UTILISATEUR

 Sources de la même categorie

Source avec Zip Source avec une capture CAMEMBERT BD par dardelphi
Source avec une capture AMÉLIORATION : CAMEMBERT par asphator
GESTION DE COULEUR par manuche
Source avec Zip NAVIGATOR (+CSSDETECTOR) par xXVoxPopuliXx
COMMENT, AVEC GD, DESSINER UN RECTANGLE TRANSPARENT PLEIN AV... par Rainbow

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,702 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales