Hier de allerlaatste edit:
PHP
<?php
// Balk generator gemaakt door GrootScripting, bewerkt door Killingdevil
// Verander onderstaande variabelen naar je eigen wensen
$maxdecimalen = 2; // Geef hier het maximaal aantal decimalen op, 0 is hele getallen
$breedte = 152; // Afbeeldingsbreedte
$hoogte = 17; // Afbeeldingshoogte
$border = 1; // Omlijningsbreedte
$correctie = 1; // Eventuele correctie voor de onderkant en rechterkant, bij sommige webservers nodig, zet op 0 voor geen veranderingen.
$lettergrootte = 3; // 3 is standaard, mag maximaal 5 zijn en minimaal 1. (de uitlijning kan s bij sommige lettergroottes niet kloppen, dan moet je in de functies iets aanpassen).
// Verander onderstaande constanten naar eigen waarde
define("tekens", "% klaar"); // Eventuele tekens weergeven achter het aantal procent (zoals het procent teken etc.)
define("uitlijning", "links"); // Hoe de tekst uitgelijnd moet worden, kan de waardes "centreer", 'links' of 'rechts' bevatten, standaardwaarde is "centreer"
define("scheidingsteken", "."); // Teken om decimalen te scheiden in de output, input moet wel met punten.
// HIERONDER ALLEEN AANPASSEN ALS JE WEET WAT JE DOET!!!
$procent = $_GET['procent'];
$split = explode('.', $procent);
if(strlen($split[1]) > $maxdecimalen){
echo '<font color="red" face="arial">Je mag maximaal <b>'.$maxdecimalen.' decimalen</b> gebruiken, jij gebruikt nu <b>'.strlen($split[1]).' decimalen</b>.</font>';
} else{
if(is_numeric($procent) && $procent >= 0 && $procent <= 100){
// Maak de achtergrond afbeelding (125x17)
$afbeelding = imagecreate($breedte, $hoogte);
// Definieër de kleuren
switch($_GET['stijl']){
case "rood":
$achtergrond = imagecolorallocate($afbeelding, 125, 0, 0);
$voorkantkleur = imagecolorallocate($afbeelding, 255, 0, 0);
break;
case "geel":
$achtergrond = imagecolorallocate($afbeelding, 255, 106, 0);
$voorkantkleur = imagecolorallocate($afbeelding, 255, 216, 0);
break;
case "blauw":
$achtergrond = imagecolorallocate($afbeelding, 0, 0, 125);
$voorkantkleur = imagecolorallocate($afbeelding, 0, 0, 255);
break;
case "paars":
$achtergrond = imagecolorallocate($afbeelding, 33, 0, 127);
$voorkantkleur = imagecolorallocate($afbeelding, 87, 0, 127);
break;
case "rose":
$achtergrond = imagecolorallocate($afbeelding, 178, 0, 255);
$voorkantkleur = imagecolorallocate($afbeelding, 255, 0, 220);
break;
case "grijs":
$achtergrond = imagecolorallocate($afbeelding, 0, 0, 0);
$voorkantkleur = imagecolorallocate($afbeelding, 64, 64, 64);
break;
case "bruinrood":
$achtergrond = imagecolorallocate($afbeelding, 91, 63, 60);
$voorkantkleur = imagecolorallocate($afbeelding, 133, 21, 11);
break;
case "turquoise":
$achtergrond = imagecolorallocate($afbeelding, 0, 148, 255);
$voorkantkleur = imagecolorallocate($afbeelding, 0, 255, 255);
break;
default:
$achtergrond = imagecolorallocate($afbeelding, 0, 125, 0);
$voorkantkleur = imagecolorallocate($afbeelding, 0, 255, 0);
break;
}
$tekstkleur = imagecolorallocate($afbeelding, 255, 255, 255);
$randkleur = imagecolorallocate($afbeelding, 0, 0, 0);
$grootte = round(($procent/100) * $breedte);
// Teken het vierkant op basis van de gegeven procenten
imagefilledrectangle($afbeelding, $border, $border, $grootte - $border - $correctie, $hoogte - $border - $correctie, $voorkantkleur);
// Schrijf het aantal procent op
if(constant("uitlijning") == "links"){
textAlignLeft($afbeelding, $procent . constant("tekens"), $tekstkleur);
} else if(constant("uitlijning") == "rechts"){
textAlignRight($afbeelding, $procent . constant("tekens"), $tekstkleur);
} else{
textAlignCenter($afbeelding, $procent . constant("tekens"), $tekstkleur);
}
imagerectangle($afbeelding, 0, 0, $breedte-1, $hoogte-1, $randkleur);
// Schrijf het bestand naar de browser
header('Content-Type: image/png');
imagepng($afbeelding);
imagedestroy($afbeelding);
} else{
echo '<font face="arial" color="red">Dit is geen geldig getal, of het getal ligt niet tussen de 0 en 100.</font>';
}
}
function textAlignCenter($image, $string, $color) {
global $lettergrootte;
$padding_left = (imagesx($image) - 8 * strlen($string)) / 2;
$padding_top = (imagesy($image) - 14) / 2;
$string_split = explode(".", $string);
if(count($string_split[1]) > 0){
$string = $string_split[0].constant("scheidingsteken").$string_split[1];
} else{
$string = $string_split[0];
}
imagestring($image, $lettergrootte, $padding_left, $padding_top, $string, $color);
}
function textAlignLeft($image, $string, $color) {
global $lettergrootte;
$padding_top = (imagesy($image) - 14) / 2;
$string_split = explode(".", $string);
if(count($string_split[1]) > 0){
$string = $string_split[0].constant("scheidingsteken").$string_split[1];
} else{
$string = $string_split[0];
}
imagestring($image, $lettergrootte, 8, $padding_top, $string, $color);
}
function textAlignRight($image, $string, $color) {
global $lettergrootte;
$padding_top = (imagesy($image) - 14) / 2;
$padding_left = (imagesx($image) - 8 * strlen($string));
$string_split = explode(".", $string);
if(count($string_split[1]) > 0){
$string = $string_split[0].constant("scheidingsteken").$string_split[1];
} else{
$string = $string_split[0];
}
imagestring($image, $lettergrootte, $padding_left, $padding_top, $string, $color);
}
?>
Toon Meer
Hij gaf namelijk altijd een . neer, ook als je geen decimalen had.
Tevens een nutteloze variabele eruit gehaald.