• Login
  • Register
  • Zoek
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Filebase Entry
  • More Options

ICTscripters

Dé plek voor IT

Dé plek voor IT

Login

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. Overige
  5. Archief
  6. Request

Forum

  • Beta-testers gezocht voor Crypto-oefenplatform

    Syntax 29 januari 2026 om 16:11
  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Syntax 19 januari 2026 om 09:34
  • Developer Gezocht

    Mikevdk 10 januari 2026 om 18:57
  • Op zoek naar de legends

    Syntax 5 januari 2026 om 13:50
  • [FREE] WeFact Hosting module

    Jeroen.G 13 oktober 2025 om 14:09
  • Help testers nodig voor android app Urgent

    urgentotservices 26 september 2025 om 10:21
  • Versio vervanger

    Jeroen.G 25 augustus 2025 om 15:56
  • Afspraken systeem met planbeperking

    Lijno 1 augustus 2025 om 23:04

Marktplaats

  • 321 Nieuwe Domeinnamen December 2025

    shiga 1 januari 2026 om 10:26
  • Meerdere mafia game template te koop

    Syntax 26 december 2025 om 00:07
  • Van een pixelige afbeelding naar een strakke, moderne website

    Syntax 21 december 2025 om 17:05

Balk generator

  • jemajeroen
  • 26 december 2010 om 18:57
  • jemajeroen
    eerst: basshunter
    Berichten
    507
    • 30 december 2010 om 12:44
    • #21

    hartelijk dank zet hem ook bij scripts dan kan iedereen hem gebruiken.

    (miss een idee om het ook voor osvendetta te gebruiken?)

  • L.Groot
    Elite members
    Ontvangen Reacties
    31
    Berichten
    4.888
    • 30 december 2010 om 12:47
    • #22

    Graag gedaan, zal het even doen ;)

    Nieuwe reactie samengevoegd met originele reactie op 30.12.10 12:50:23:
    Done, is toegevoegd even wachten op toestemming.

  • Stefan.J
    Master
    Ontvangen Reacties
    9
    Berichten
    2.358
    • 30 december 2010 om 13:09
    • #23

    Inderdaad een leuk scriptje. Maar voordat ik hem aan de library toevoeg: Waarom mag dit wel:

    http://grootscripting.nl/gd.php?procent=100.9

    En mag dit niet?:

    http://grootscripting.nl/gd.php?procent=0

  • RDMNL2010
    webbasing.com
    Berichten
    560
    • 30 december 2010 om 13:13
    • #24

    lijk mij een kwestie van dit te veranderen

    PHP
    <?php
    if($_GET['procent'] > 0 && $_GET['procent'] < 101){


    in

    PHP
    <?php
    if($_GET['procent'] >= 0 && $_GET['procent'] <= 100){

    Webbasing.com

  • L.Groot
    Elite members
    Ontvangen Reacties
    31
    Berichten
    4.888
    • 30 december 2010 om 13:34
    • #25

    Oja, sorry, klein foutje ;)
    Iets te snel nagedacht.

  • SkyNet
    Skype & Microsoft
    Berichten
    3.002
    • 30 december 2010 om 13:36
    • #26

    Komma getallen kunnen er nog wel achter?

  • L.Groot
    Elite members
    Ontvangen Reacties
    31
    Berichten
    4.888
    • 30 december 2010 om 13:38
    • #27
    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.
    $tekens = '% Groentje'; // Eventuele tekens weergeven achter het aantal procent (zoals het procent teken etc.)
    $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", "% Groentje"); // 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);
        $string = $string_split[0].$teken.$string_split[1];
        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);
        $string = $string_split[0].$teken.$string_split[1];
        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);
        $string = $string_split[0].$teken.$string_split[1];
        imagestring($image, $lettergrootte, $padding_left, $padding_top, $string, $color);
    }
    ?>
    Toon Meer

    Verbeterd.

    @Killingdevil,
    Zou je de bovenstaande code erop kunnen zetten ;)

    Edit:

  • SkyNet
    Skype & Microsoft
    Berichten
    3.002
    • 30 december 2010 om 13:40
    • #28

    Lars kijk eens naar mijn reactie ^

  • Bever
    Professional
    Berichten
    627
    • 30 december 2010 om 13:44
    • #29

    SkyNet

    Lijkt me ook de bedoeling. Als je dat niet wil moet je gewoon zorgen dat het percentage wat je invoegt niet met een komma is.

  • L.Groot
    Elite members
    Ontvangen Reacties
    31
    Berichten
    4.888
    • 30 december 2010 om 13:47
    • #30

    SkyNet,
    Wacht, ik maak er even iets bij :)

    Nieuwe reactie samengevoegd met originele reactie op 30.12.10 13:53:51:

    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.
    $tekens = '% Groentje'; // Eventuele tekens weergeven achter het aantal procent (zoals het procent teken etc.)
    $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", "% Groentje"); // 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);
        $string = $string_split[0].$teken.$string_split[1];
        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);
        $string = $string_split[0].$teken.$string_split[1];
        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);
        $string = $string_split[0].$teken.$string_split[1];
        imagestring($image, $lettergrootte, $padding_left, $padding_top, $string, $color);
    }
    ?>
    Toon Meer

    Zo, als je nu bij het voorbeeld:
    http://grootscripting.nl/gd.php?procent=50
    Een kommagetal invoegt met meer dan 2 decimalen, dan krijg je een error.
    Je kan meer decimalen of geen decimalen aanzetten door bijv. de 2 naar 0 te veranderen = hele getallen of naar 1 = 1 decimaal.

    Edit:
    Laatste change, je kan nu 6 andere kleuren gebruiken.
    Als je &kleur=rood bijv. meegeeft word ie rood, als kleur niet rood, geel, blauw, paars, rose of grijs bevat word hij groen.

    Edit:

  • SkyNet
    Skype & Microsoft
    Berichten
    3.002
    • 30 december 2010 om 14:16
    • #31

    http://grootscripting.nl/gd.php?procent=100,555 werkt nog steeds hoor.

    EDIT : Aha.

  • Stefan.J
    Master
    Ontvangen Reacties
    9
    Berichten
    2.358
    • 30 december 2010 om 14:34
    • #32

    Ik heb voor jou laatste wijziging ook in je script gewijzigd. Maar samen komen we wel tot een perfecte versie! Dit is mijn huidige versie:

    PHP
    <?php
    
    
    $image_height = 200;
    $image_width = 200;
    $border_size = 20;
    
    
    $procent = (isset($_GET['procent'])) ? round($_GET['procent'], 2) : 0;
    
    
    if($procent >= 0 && $procent <= 100){
        // Maak de afbeelding
    	$afbeelding = imagecreate($image_width, $image_height);
    
    
        // Definiër de kleuren
        $achtergrond = imagecolorallocate($afbeelding, 0, 125, 0);
        $voorkantkleur = imagecolorallocate($afbeelding, 0, 255, 0);
        $tekstkleur = imagecolorallocate($afbeelding, 0, 0, 0);
        $grootte = round($procent/100 * ($image_width - $border_size));
    
    
        // Teken het vierkant op basis van de gegeven procenten
        imagefilledrectangle($afbeelding, $border_size, $border_size, $grootte + $border_size, $image_height - $border_size, $voorkantkleur);
    
    
    	// Voeg de tekst toe aan de afbeelding
    	imageStringCentered($afbeelding, $procent . ' %', $tekstkleur);
    
    
        // Schrijf het bestand naar de browser
        header('Content-Type: image/png');
        imagepng($afbeelding);
        imagedestroy($afbeelding);
    
    
    } else {
        echo '<font face="arial">Roep deze pagina zo aan: <a href="gd.php?procent=25">gd.php?procent=25</a> waar procent=25 staat tot 25%.</a>Het getal moet tussen de 0 en 100 liggen.';
    }
    
    
    function imageStringCentered($image, $string, $color) {
    	$padding_left = (imagesx($image) - 8 * strlen($string)) / 2;
    	$padding_top = (imagesy($image) - 16) / 2;
        imagestring($image, 4, $padding_left, $padding_top, $string, $color);
    }
    
    
    ?>
    Toon Meer

    Wat ik heb gedaan:
    - Het cijfers met decimalen probleem opgelost, zoals jij dus achteraf ook al had gedaan.
    - Een aantal variabele geïntroduceerd. Deze maken het mogelijk makkelijk het script aan te passen zonder eerst te moeten zoeken hoe dat te doen. Daarnaast lossen ze het probleem op van 'magic numbers', die je eigenlijk altijd moet voorkomen.
    - Een function geïntroduceerd, zodoende blijft het script leesbaarder, en daarnaast is de functie ook los goed bruikbaar.
    - Voorkomen dat het niet opgeven van $_GET['procent'] problemen oplevert.

    Dingen die discutabel zijn:
    - Het script is in het Nederlands geschreven, ik ben van mening dat je altijd in het Engels moet programmeren.
    - De if-else constructie zal in productie doelloos zijn.

    Ik hoor graag wat je van deze versie vind. :)

  • L.Groot
    Elite members
    Ontvangen Reacties
    31
    Berichten
    4.888
    • 30 december 2010 om 14:43
    • #33

    @Killingdevil,

    Heel erg bedankt, ik ben weer wat wijzer.
    Dan is het zo waarschijnlijk wel goed:

    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.
    $tekens = '% Groentje'; // Eventuele tekens weergeven achter het aantal procent (zoals het procent teken etc.)
    $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", "% Groentje"); // 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);
        $string = $string_split[0].$teken.$string_split[1];
        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);
        $string = $string_split[0].$teken.$string_split[1];
        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);
        $string = $string_split[0].$teken.$string_split[1];
        imagestring($image, $lettergrootte, $padding_left, $padding_top, $string, $color);
    }
    ?>
    Toon Meer

    OOP wil ik dit nog niet maken, omdat ongeveer 99% van alle crimegames die dit gebruiken toch niet OOP gescript is, en het project waar ik het voor wil gebruiken ook niet.

    Verder heb ik aan alles voldaan.

    Hopelijk is het zo perfect ;)

    Nieuwe reactie samengevoegd met originele reactie op 30.12.10 20:11:53:
    Killingdevil, kan je hem even vernieuwen, met bovenstaand script :)

  • RDMNL2010
    webbasing.com
    Berichten
    560
    • 30 december 2010 om 16:01
    • #34

    netjes gedaan lars zal dit scriptje zeker nuttig gaan gebruiken!

    Webbasing.com

  • L.Groot
    Elite members
    Ontvangen Reacties
    31
    Berichten
    4.888
    • 30 december 2010 om 16:04
    • #35

    Alsjeblieft :)
    Zijn de laatste functies handig btw.?

  • RDMNL2010
    webbasing.com
    Berichten
    560
    • 30 december 2010 om 16:08
    • #36

    je bedoelt de kleurfuncties? Voor diegene die niet weten hoe ze met de RGB colors moeten werken wel. Voor mij persoonlijk is het overbodig.

    Webbasing.com

  • SkyNet
    Skype & Microsoft
    Berichten
    3.002
    • 30 december 2010 om 16:10
    • #37

    Is er überhaupt naar mijn reactie gekeken? :p

  • L.Groot
    Elite members
    Ontvangen Reacties
    31
    Berichten
    4.888
    • 30 december 2010 om 16:24
    • #38

    @Killingdevil,

    Heel erg bedankt, ik ben weer wat wijzer.
    Dan is het zo waarschijnlijk wel goed:

    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.
    $tekens = '% Groentje'; // Eventuele tekens weergeven achter het aantal procent (zoals het procent teken etc.)
    $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", "% Groentje"); // 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);
        $string = $string_split[0].$teken.$string_split[1];
        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);
        $string = $string_split[0].$teken.$string_split[1];
        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);
        $string = $string_split[0].$teken.$string_split[1];
        imagestring($image, $lettergrootte, $padding_left, $padding_top, $string, $color);
    }
    ?>
    Toon Meer

    OOP wil ik dit nog niet maken, omdat ongeveer 99% van alle crimegames die dit gebruiken toch niet OOP gescript is, en het project waar ik het voor wil gebruiken ook niet.

    Verder heb ik aan alles voldaan.

    Hopelijk is het zo perfect ;)

    Nieuwe reactie samengevoegd met originele reactie op 30.12.10 20:11:53:
    Killingdevil, kan je hem even vernieuwen, met bovenstaand script :)

  • Stefan.J
    Master
    Ontvangen Reacties
    9
    Berichten
    2.358
    • 30 december 2010 om 17:19
    • #39

    Mooi dat mijn bijdrage nuttig is geweest!

    Nog enkele tips:
    1. Zet de functies onderaan het script. Goede functies hebben een duidelijke naam en parameterlijst, waardoor je niet meer hoeft te lezen wat ze doen om te weten wat ze doen. En aangezien we van boven naar beneden lezen, is het dan praktischer ze onderaan neer te zetten.
    2. Maak geen functies met parameterlijsten van meer dan 3 tot 4 parameters tenzij het echt nodig is. Zulke grote parameterlijsten maken de functie onduidelijk, zie tip 1.
    3. Zorg dat functies slechts één ding doen, en dat de naam van de functie dat zo goed mogelijk beschrijft. De tijd van functienamen van maximaal 16 tekens is allang voorbij. Zie wederom tip 1.
    4. Vermijd strings voor instelling. Hiervoor zijn constante uitgevonden.
    5. Als je het echt goed wilt doen, ga OOP!

    Hopelijk heb je hier nog iets aan. :)

    Nieuwe reactie samengevoegd met originele reactie op 30.12.10 17:22:40:
    Ps. Ik zal het script in de library zetten, maar wacht dit topic nog even af. ;)

  • L.Groot
    Elite members
    Ontvangen Reacties
    31
    Berichten
    4.888
    • 30 december 2010 om 20:02
    • #40

    @Killingdevil,

    Heel erg bedankt, ik ben weer wat wijzer.
    Dan is het zo waarschijnlijk wel goed:

    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.
    $tekens = '% Groentje'; // Eventuele tekens weergeven achter het aantal procent (zoals het procent teken etc.)
    $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", "% Groentje"); // 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);
        $string = $string_split[0].$teken.$string_split[1];
        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);
        $string = $string_split[0].$teken.$string_split[1];
        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);
        $string = $string_split[0].$teken.$string_split[1];
        imagestring($image, $lettergrootte, $padding_left, $padding_top, $string, $color);
    }
    ?>
    Toon Meer

    OOP wil ik dit nog niet maken, omdat ongeveer 99% van alle crimegames die dit gebruiken toch niet OOP gescript is, en het project waar ik het voor wil gebruiken ook niet.

    Verder heb ik aan alles voldaan.

    Hopelijk is het zo perfect ;)

    Nieuwe reactie samengevoegd met originele reactie op 30.12.10 20:11:53:
    Killingdevil, kan je hem even vernieuwen, met bovenstaand script :)

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!

Maak een account aan Login

ICT Nieuws

  • Fijne feestdagen

    tcbhome 28 december 2025 om 13:55
  • Kritieke update voor Really Simple Security-plug-in

    K.Rens 16 november 2024 om 16:12
  • ING Nederland streeft naar ondersteuning van Google Pay tegen eind februari

    K.Rens 2 november 2024 om 16:09

Blogs

  • Functioneel ontwerp

    Dees 28 december 2014 om 12:38
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN 28 december 2018 om 12:35
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN 29 december 2018 om 12:37
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacy Policy
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen | Beste Zetes eid kaartlezer webshop
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design