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
<?php
header("content-type: image/png");
if(isset($_GET['ver'])){
$maal100=6;//dit is het aantal keer dat de standaard breedte (die ik heb ingesteld op 100) moet vergroot worden
$hoogte=20;//hoogte voor de balk
$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)
$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
$bgcolor = imagecolorallocate($image, 213, 213, 213); //'is gelijk aan de bgcolor van de site'
imagefill($image, 0, 0, $bgcolor);
$grijs = imagecolorallocate($image, 102, 102, 102);
$groen = imagecolorallocate($image, 132, 170, 132);
$punt1[0] = 0;
$punt1[1] = 0;
$punt1[2] = $breedte+1; // +1 --> zo past de tweede balk - met de resultaten - er netjes in
$punt1[3] = 0;
$punt1[4] = $breedte+1; // +1 --> zo past de tweede balk - met de resultaten - er netjes in
$punt1[5] = $hoogte;
$punt1[6] = 0;
$punt1[7] = $hoogte;
imagepolygon($image, $punt1, 4, $grijs);
imageline($image,0,$hoogte/2,$breedte,$hoogte/2,$grijs);
$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)
$punt2[0] = 1;
$punt2[1] = 1;
$punt2[2] = $ver;
$punt2[3] = 1;
$punt2[4] = $ver;
$punt2[5] = $hoogte-1; //altijd om een waarde minder omdat het rood dan mooi in de andere polygon(vierhoek) komt.
$punt2[6] = 1;
$punt2[7] = $hoogte-1;
imagefilledpolygon($image, $punt2, 4, $groen);
if($_GET['ver']!=100){//om te voorkomen dat je een dubbele lijn krijgt op het einde van de balk wanneer het 100% aangeeft.
imageline($image,$ver,0,$ver,$hoogte,$grijs);
}
imagestring($image, 3, $breedte+5, 0, $_GET['ver']." %", $grijs);
imagefilter($image,IMG_FILTER_CONTRAST,5);
imagepng($image);
imagedestroy($image);
}
?>
$maal100=6;//dit is het aantal keer dat de standaard breedte (die ik heb ingesteld op 100) moet vergroot worden
$hoogte=20;//hoogte voor de balk
$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)
$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
$bgcolor= imagecolorallocate($image,213,213,213);//'is gelijk aan de bgcolor van de site'
imagefill($image,0,0,$bgcolor);
$grijs= imagecolorallocate($image,102,102,102);
$groen= imagecolorallocate($image,132,170,132);
$punt1[0]=0;
$punt1[1]=0;
$punt1[2]=$breedte+1;// +1 --> zo past de tweede balk - met de resultaten - er netjes in
$punt1[3]=0;
$punt1[4]=$breedte+1;// +1 --> zo past de tweede balk - met de resultaten - er netjes in
$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)
$punt2[0]=1;
$punt2[1]=1;
$punt2[2]=$ver;
$punt2[3]=1;
$punt2[4]=$ver;
$punt2[5]=$hoogte-1;//altijd om een waarde minder omdat het rood dan mooi in de andere polygon(vierhoek) komt.
$punt2[6]=1;
$punt2[7]=$hoogte-1;
imagefilledpolygon($image,$punt2,4,$groen);
if($_GET['ver']!=100){//om te voorkomen dat je een dubbele lijn krijgt op het einde van de balk wanneer het 100% aangeeft.