login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > GD library > Poll statbar 1.5

Poll statbar 1.5

Auteur: Button - 27 februari 2006 - 19:17 - Gekeurd door: nemesiskoen - Hits: 4176 - Aantal punten: 0.50 (2 stemmen)




een script-snippet in gd gemaakt voor het afdrukken van de resultaten van een poll
- aan te roepen op een andere pagina met: <img src="link.php?ver=100"> waarbij 'ver' gelijk moet zijn aan het aantal procent (op 100 tuurlijk en zonder het %-teken)



ja miss voor iedereen -> waarom die $maal100: de waarden die worden doorgegeven aan de pagina staan dus op 100 bv. 50 op 100 nu ik heb de $breedte ingesteld op standaard 100(om de reden die ik hierboven zei: de resultaten staan op 100), nu een balkje van 100 pixels breed is niet echt zo breed, dus met die $maal100 kan je instellen hoeveel keer die honderd moet vergroot worden... bv. $breedte = 100 * $maal100(=3), dan wordt de $breedte van de balk 300 ...
ook de doorgegeven var $_GET['ver'] is maal $maal100 zodat de verhoudingen kloppen 
als je het nog niet snapt, experimenteer dan maar een beetje

Code:
  1. <?php
  2. header("content-type: image/png");
  3.  
  4. if(isset($_GET['ver'])){
  5.  
  6. $maal100=6;//dit is het aantal keer dat de standaard breedte (die ik heb ingesteld op 100) moet vergroot worden
  7.  
  8. $hoogte=20;//hoogte voor de balk
  9. $breedte=100*$maal100;//dit is de breedte van de balk (standaard: 100; dat (als je je resultaten op 100 meegeeft met $_GET['ver']) je beter zo laat staan) maal het aantal keer groter dan 100 (die wordt ingesteld enkele regels hierboven)
  10.  
  11. $image = imagecreate($breedte+50, $hoogte+3); //deze waarden zijn de waarden van (!)héél de afbeelding! dus niet alleen het balkje; altijd een paar pixels (of wat zijn het?) bijtellen anders komt het niet goed uit (<- voor de hoogte); voor de breedte ongeveer 50 bijtellen want de tekst moet er ook nog bij
  12.  
  13. $bgcolor = imagecolorallocate($image, 213, 213, 213); //'is gelijk aan de bgcolor van de site'
  14. imagefill($image, 0, 0, $bgcolor);
  15.  
  16.  
  17. $grijs = imagecolorallocate($image, 102, 102, 102);
  18. $groen = imagecolorallocate($image, 132, 170, 132);
  19.  
  20.  
  21. $punt1[0] = 0;
  22. $punt1[1] = 0;
  23. $punt1[2] = $breedte+1; // +1 --> zo past de tweede balk - met de resultaten - er netjes in
  24. $punt1[3] = 0;
  25. $punt1[4] = $breedte+1; // +1 --> zo past de tweede balk - met de resultaten - er netjes in
  26. $punt1[5] = $hoogte;
  27. $punt1[6] = 0;
  28. $punt1[7] = $hoogte;
  29.  
  30. imagepolygon($image, $punt1, 4, $grijs);
  31. imageline($image,0,$hoogte/2,$breedte,$hoogte/2,$grijs);
  32.  
  33. $ver=$_GET['ver']*$maal100;//dit is de breedte van de tweede polygen(veelhoek) (met de eigenlike procent): (verklaring:) die breedte moet natuurlijk ook aangepast worden aan de eerste balk, daarom vermenigvuldigen we hem met $maal100 dat ook bij de breedte van de eerste balk is gebeurd (zie boven)
  34.  
  35. $punt2[0] = 1;
  36. $punt2[1] = 1;
  37. $punt2[2] = $ver;
  38. $punt2[3] = 1;
  39. $punt2[4] = $ver;
  40. $punt2[5] = $hoogte-1; //altijd om een waarde minder omdat het rood dan mooi in de andere polygon(vierhoek) komt.
  41. $punt2[6] = 1;
  42. $punt2[7] = $hoogte-1;
  43.  
  44. imagefilledpolygon($image, $punt2, 4, $groen);
  45.  
  46. if($_GET['ver']!=100){//om te voorkomen dat je een dubbele lijn krijgt op het einde van de balk wanneer het 100% aangeeft.
  47.  
  48. imageline($image,$ver,0,$ver,$hoogte,$grijs);
  49.  
  50. }
  51.  
  52. imagestring($image, 3, $breedte+5, 0, $_GET['ver']." %", $grijs);
  53.  
  54. imagefilter($image,IMG_FILTER_CONTRAST,5);
  55.  
  56. imagepng($image);
  57.  
  58. imagedestroy($image);
  59. }
  60. ?>
Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (8)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.024s