<?php
// Zijn de nodige variabelen opgegeven?
if(is_numeric($_GET["sterren"]) && is_numeric($_GET["punten"]) && is_numeric($_GET["maxpunten"]))
{
  $breedte = 13; // Breedte ster
  $hoogte = 15; // Hoogte ster
  $leeg = imagecreatefromgif("ster_leeg.gif"); // De lege ster
  $vol = imagecreatefromgif("ster_vol.gif"); // De volle ster
  $sterren = imagecreatetruecolor(($_GET["sterren"] * $breedte), $hoogte); // Afbeelding aanmaken
  
  $per_ster = $_GET["maxpunten"] / $_GET["sterren"]; // Punten per ster berekenen
  $volle_sterren = floor($_GET["punten"] / $per_ster); // Aantal volle sterren (altijd afronden naar beneden) 
  $overschot = round((($_GET["punten"] - ($volle_sterren * $per_ster)) / $per_ster) * $breedte); // Wat nog vol moet zijn bij deels volle ster

  // Sterren invoegen
  for($i = 0; $i < $_GET["sterren"]; $i++)
  {
	$x = $i * $breedte; // Startpunt X berekenen
	
	if($volle_sterren > 0) // Volle sterren invoegen
	{
	  imagecopy($sterren, $vol, $x, 0, 0, 0, $breedte, $hoogte);
	  $volle_sterren = $volle_sterren - 1;
	}
	elseif($overschot > 0) // Deels volle sterren
	{
	  imagecopymerge($sterren, $vol, $x, 0, 0, 0, $overschot, $hoogte, 100); // Vol deel
	  imagecopymerge($sterren, $leeg, ($x + $overschot), 0, $overschot, 0, ($breedte - $overschot), $hoogte, 100); // Leeg deel
	  $overschot = 0;
	}
	else // Lege sterren invoegen
	  imagecopy($sterren, $leeg, $x, 0, 0, 0, $breedte, $hoogte);
  }

  // Afbeelding volledig transparant maken
  imagecolortransparent($sterren, imagecolorallocate($sterren, 255, 255, 255));
  
  // Afbeelding sturen
  header("Content-type: image/gif");
  imagegif($sterren);
  imagedestroy($sterren);
}
?>