begin process at 2008 08 20 12:00:04
1 228 769 membres
141 nouveaux aujourd'hui
14 257 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

COLORISE UNE IMAGE AVEC GD


Information sur la source

Catégorie :Graphique Niveau : Débutant Date de création : 17/12/2004 Vu : 2 395

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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..
    Aucun commentaire pour le moment.

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS