06. marts 2005 - 17:37
Der er
9 kommentarer og
2 løsninger
PHP fil der genererer et PNG billede - En progressbar
Jeg skal lave en lille progressbar... Fx sådan en her:
http://www.udvikleren.dk/bar.php?r=59.72&m=100Hvis man lægger mærke til parametrene så tager den to.. hehe
Et der definerer hvor meget der er "taget" af progressbaren og en der definerer hvor meget progressbaren strækker sig over fx 100 (som i 100 %)
Det ovenstående link er til en PHP fil som sagt og den retunerer et PNG billede, altså ingen PHP kode bliver retuneret...
Hvordan kan dette laves?
Jeg kunne ville meget gerne have nogle eksempler!
Håber på i vil hjælpe mig :o)
Mvh
Anders
06. marts 2005 - 20:25
#6
Til dem der kunne tænke sig koden jeg er kommet frem til er den her under...
Jeg har justeret skriften så den står PRÆCIST i midten... ikke in pixels afvigelse...
Parametrene er:
value
width
hvis value ikke er angivet vil den blive sat til 0 og hvis width ikke er angivet vil den blive sat til 100...
koden
--------------------------------------------------------------------------------
<?php
if(isset($HTTP_GET_VARS["value"]) == false)
{
$value = 0;
}
else
{
$value = $HTTP_GET_VARS["value"];
}
// Picture Size
if(isset($HTTP_GET_VARS["width"]) == false)
{
$width = 100;
}
else
{
$width = $HTTP_GET_VARS["width"];
}
$height = 12;
// Create Picture
$img = imagecreatetruecolor($width, $height);
// Calculations
$pixel_per_value = ($width-2)/100;
$fillwidth = $pixel_per_value * $value;
// Colors
$backcolor = ImageColorAllocate($img, 255, 255, 255); // White
$progcolor = ImageColorAllocate($img, 200, 220, 255); // Light Blue
$bordcolor = ImageColorAllocate($img, 128, 128, 128); // Dark Grey
$textcolor = ImageColorAllocate($img, 0, 0, 0); // Black
// Drawing
imagefill($img, 0, 0, $backcolor); // Fill Background
imageline($img, 0, 0, $width, 0, $bordcolor); // Top Border
imageline($img, 0, 0, 0, $height-1, $bordcolor); // Left Border
imageline($img,1, $height-1, $width, $height-1, $bordcolor); // Bottom Border
imageline($img, $width-1, $height-1, $width-1,1, $bordcolor); // Right Border
imagefilledrectangle($img, 1, 1, $fillwidth, ($height-2), $progcolor); // Fill Rectangle
// Text
if($value == 0)
{
imagestring($img, 1, 40, 2, "0.00", $textcolor);
}
else
{
imagestring($img, 1, 38, 2, $value, $textcolor);
}
// Display Picture
header("Content-type: image/png"); // Browser Header
imagepng($img); // Output Picture
imagedestroy($img); // Delete Picture
?>