begin process at 2010 09 09 10:52:03
  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 069

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

MANIPULATION DES DONNÉES IPTC par shevabam
Source avec Zip Source avec une capture AJOUTER DES EFFETS DE PERSPECTIVE ET DES EFFETS DE REFLET SU... par zulrigh
Source avec Zip Source avec une capture METTEZ VOS IMAGES OU VOS PHOTOS EN 3D ; EN PERSPECTIVE par zulrigh
Source avec Zip FAIRE DES MINIATURE D'IMAGE, DES PHOTOS POUR LES PROFILS par zulrigh
Source avec Zip Source avec une capture CARTOGRAPHIE DYNAMIQUE DE LA FRANCE AVEC UNE BASE MYSQL ET D... par buchron

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
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,562 sec (3)

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