jeg har faktisk lavet sådan en funktion engang. Var dog ikke så skarp til PHP på det tidspunkt men du kan da lige få koden så kan du arbejde ud fra den
<?
class Statusbar {
function DrawImage($Bar_Width, $Percent, $Destination) {
//Calculate how many pixels should be filled
$filled_percent = ($Percent/100)*($Bar_Width-6);
$filled_percent = ceil($filled_percent);
//Create canvas
$im = @imagecreate ($Bar_Width, 18);
//Set background color
$background = imagecolorallocate ($im, 255, 255, 255);
//Set target images
$left = imagecreatefrompng("images/misc/left.png");
$right = imagecreatefrompng("images/misc/right.png");
$filled_bar = imagecreatefrompng("images/misc/med.png");
$empty_bar = imagecreatefrompng("images/misc/uden.png");
$i=3;
//Draw filled bar
while($i <= $filled_percent) {
imagecopy ($im, $filled_bar, $i, 0, 0, 0, 1, 18);
$i++;
}
//Draw empty bar
while($i <= ($Bar_Width-3)) {
imagecopy ($im, $empty_bar, $i, 0, 0, 0, 1, 18);
$i++;
}
//Calculate where to put right end
$right_pos = $Bar_Width-2;
//Draw ends
imagecopy ($im, $left, 0, 0, 0, 0, 3, 18);
imagecopy ($im, $right, $right_pos, 0, 0, 0, 3, 18);
//Save file
if(file_exists($Destination)) { unlink($Destination); }
imagepng($im, $Destination);
imagedestroy ($im);
}
}
?>
Som koden er bygget ny tegner den et nyt billede og sletter det gamle hver gang det bliver kaldt. Dette gjorde jeg fordi det var det nemmeste i det tilfælde jeg skulle bruge det. Hvis du vil have en funktion magen til den her på udvikleren skal den lige justeres lidt. Den er også lavet så baren er 18px høj og enderne er 2 px bredde. Du skal altså bruge 4 billeder sammen med denne funktion. En til venstre ende, en til højre ende, en til en fyldt bar og en til når baren er tom. Håber du kan bruge det til noget. Som sagt er det lidt gammelt så kan ikke rigtigt garantere hvor optimalt det er men så har du måske noget du kan bruge til at arbejde ud fra.