GD : appliquer une teinte à une image

GD : appliquer une teinte à une image - PHP - Programmation

Marsh Posté le 30-07-2004 à 03:32:14    

je recherche à faire une manipulation d'image en PHP pas spécialement simple : à partir d'une image JPG j'aimerais pouvoir appliquer une teinte  à toute l'image
par exemple passer de  
http://stolemy.net/~marblema/images/tutors/photoshop27/7.gif
à  
http://stolemy.net/~marblema/images/tutors/photoshop27/8.gif
 
j'ai essayer en faisant fonctionner la transparence des couleurs mais evidemment avec le pourcentage d'opacité...ca ne rend pas du tout la couleur désiré et j'ai toujours les couleurs d'origines de visible (mais en plus clair):

Code :
  1. $im = imagecreatefromjpeg('images/IMG_2469.JPG');
  2. $coul = imagecolorallocatealpha($im,116,188,224,50);
  3. imagefilledrectangle($im,0,0,640,480,$coul);
  4. imagejpeg($im);
  5. imagedestroy($im);


 
j'ai beau chercher je ne trouve aucun script php pour faire ceci  :pt1cable:  
 
Merci de votre aide :jap:


Message édité par Profil supprimé le 30-07-2004 à 03:33:24
Reply

Marsh Posté le 30-07-2004 à 03:32:14   

Reply

Marsh Posté le 30-07-2004 à 04:18:28    

euh ... ca te dit pas de faire 2 images différentes???  
ca me parait difficile ca quand meme! mais pas impossible!


---------------
!jb!
Reply

Marsh Posté le 30-07-2004 à 13:17:25    

non justement, je voudrais la générer en php : en fait c'est pour modifier la couleurs des images faisant parti de l'interface graphique de mon site et j'aimerais que l'on puisse choisir une couleur quelconque :)

Reply

Marsh Posté le 30-07-2004 à 16:35:03    

apres mainte et mainte recherche, je pense avoir trouver une solution :
je suis arrivé à quelquechose assez convaincant en ajoutant à  chaque couleur de l'image la couleur RGB que je donne en parametre :)

Reply

Marsh Posté le 30-07-2004 à 16:57:01    

tu peux donner le code stp ? :)

Reply

Marsh Posté le 30-07-2004 à 19:32:13    

voilà ce que j'ai fait :)
 

Code :
  1. function teinte(&$image,$setR,$setG,$setB,$luminosite = 0) {
  2.         imagetruecolortopalette($image, true, 256);
  3.        
  4. $nbcolors = imagecolorstotal($image);
  5. if (($setR < -255) || ($setR > 255)) return;
  6. if (($setG < -255) || ($setG > 255)) return;
  7. if (($setB < -255) || ($setB > 255)) return;
  8. $rateR = 1/3;
  9. $rateG = 1/3;
  10. $rateB = 1/3;
  11. for ($i = 0; $x < $nbcolors; $x++) {
  12.         $couleur_index     = imagecolorsforindex($image,$i);
  13.         $new_color      = min(255,abs($couleur_index["red"] * $rateR + $couleur_index["green"] * $rateG + $couleur_index["blue"] * $rateB) + $luminosite);
  14.        
  15.         $r              = min(255,$new_color + $setR);
  16.         $g              = min(255,$new_color + $setG);
  17.         $b              = min(255,$new_color + $setB);
  18.         imagecolorset($image,$i,$r,$g,$b);
  19. }
  20. }
  21. exemple :
  22. $im = imagecreatefromjpeg('image.jpg');
  23. teinte($im,150,0,0);
  24. imagejpeg($im);
  25. imagedestroy($im);


Reply

Marsh Posté le 30-07-2004 à 19:44:29    

ok merci
 
j'ai jamais rien compris à gd mais la je vais m'y mettre un peu :)

Reply

Marsh Posté le 30-07-2004 à 20:37:31    

TriadPtale a écrit :

ok merci
 
j'ai jamais rien compris à gd mais la je vais m'y mettre un peu :)

:lol:  
 
c'est vraiment sympa GD

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed