Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
851 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Librairie GD + Transparence...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Librairie GD + Transparence...

n°1200660
rclsilver
Posté le 15-09-2005 à 18:50:55  profilanswer
 

Alors voila, je voudrais réaliser en PHP, une code qui génère une image (de type... je m'en fous.. mais du moment que ça marche), qui correspondrait à une note.
 
Pour réaliser cette image dynamique, j'ai décidé de la faire en deux parties :  
 - un fond coloré (2 couleurs);
 - un motif copié 10 fois (la note est sur 10)
 
Pour le fond, j'ai procedé de la manière suivante :  

Code :
  1. $im = ImageCreateTrueColor($w_img, $h_img);
  2. $fond = ImageColorAllocate($im, 255, 255, 255);
  3. $enabled = ImageColorAllocate($im, 50, 200, 150);
  4. $disabled = ImageColorAllocate($im, 10, 150, 10);
  5. ImageFilledRectangle ($im, 0, 0, $note * $w_img / 10, $h_img, $enabled);
  6. ImageFilledRectangle ($im, $note * $w_img / 10, 0, $w_img, $h_img, $disabled);


 
J'obtient donc 2 rectangles de couleurs et de taille différentes (la largeur dépends de la note).
 
Pour une note de 5 / 10, voici le résultat :
http://rclsilver.free.fr/fond.gif
 
Pour le motif, je me suis basé sur une image existante, représentant une étoile, que je stoque et redimensionne dans mon code de la manière suivante :

Code :
  1. $filename = './etoile.png';
  2. $h_img = 50;
  3. list($w, $h) = GetImageSize($filename);
  4. $h2 = $h_img;
  5. $w2 = $h2 * $w / $h;
  6. $w_img = $w2 * 10;
  7. // $w2 et $h2 contiennent la largeur et la hauteur d'une étoile (réduite)
  8. $im_et = ImageCreateFromPNG($filename);


Plus loin dans mon code, je colle 10 fois cette image côte à côte, de la manière suivante  

Code :
  1. for ( $i = 0; $i < 10; ++$i )
  2. {
  3. ImageCopyResized ($im, $im_et, $i * $w2, 0, 0, 0, $w2, $h2, $w, $h);
  4. }


Afin d'obtenir le résultat suivant :
http://rclsilver.free.fr/etoiles.gif
 
Et c'est là qu'arrive mon problème. J'ai essayé de plusieurs manières (je ne vais pas copier tous mes bouts de code.. car ça serait trop le "bordel" mais j'explique ce que je voudrais faire).  
 
Enfait, sur mon image avec le fond ($im, créée par ImageCreateTrueColor()), j'ai copié 10 étoiles. Et je voudrais que la partie blanche des étoiles soit transparente, afin qu'on puisse voir le fond a travers et obtenir le résultat suivant :
http://rclsilver.free.fr/etoiles_et_fond.gif  
 
Je précise que les couleurs choisies pour le moment, ne sont la rien que pour le test, et que je changerai une fois que ça fonctionnera :)
 
Merci d'avance pour votre aide, j'espère que j'ai été clair dans ma demande.
 

mood
Publicité
Posté le 15-09-2005 à 18:50:55  profilanswer
 

n°1200690
gatsusat
Posté le 15-09-2005 à 20:13:31  profilanswer
 

Yen a qui adorent se faire chier
 
http://gatsu.ftp.free.fr/html/TestNote/

n°1200695
rclsilver
Posté le 15-09-2005 à 20:29:04  profilanswer
 

Je retiens ta réponse, car elle fonctionne, et c'est l'essentiel.. Mais si quelqu'un a quand meme la solution pour mon .php.. je suis preneur, au moins par curiosité.. merci d'avance, et merci gatsusat pour ta solution.

n°1200698
gatsusat
Posté le 15-09-2005 à 20:47:31  profilanswer
 

Tiens au cas ou j'ai remis à jour, là tu peux jouer avec les px pour décaler le background de l'image, et au lieu de faire une image à 2 couleurs, j'ai simplement créé une image verte e 1px de haut et de 600 px de largeur, elle fait 1ko en jpg
et pour l'etoile, suffit juste de la répéter sur le background du div interieur.
 
ensuite tu décalle l'image en background de y px que tu as besoin
 
le mieux c'est de faire le style en inline

Code :
  1. <div style="background-position:<?=manote/parNote*largeurImg?>px"></div>


et normalement tu seras comblé :)
 
et même pas besoin de faire appel à GD

n°1201387
rclsilver
Posté le 16-09-2005 à 22:05:42  profilanswer
 

okay merci bcp :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Librairie GD + Transparence...

 

Sujets relatifs
[Java AWT] Image de fond et transparence...Librairie GD : utiliser imagepng() sans faire un header ? [résolu]
trouver et installer la librairie DAO 4.0 pour vb6[ASP.NET]librairie graphique
linker error sur dev CPP avec la librairie tiffOù trouver la librairie sys/types.h?
Utilisation de la librairie GDProblème de compilation avec la librairie wxWidget
2 JFrame superposées mais pas de transparence ?!Utilisation d'une librairie avec 2 compilateurs
Plus de sujets relatifs à : Librairie GD + Transparence...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR