TrollabWikiphpimagecreate

Kingsage Tests

Création d'un graphique type :

Premier test

jauge3.php

<?
if((isset($_GET['attaque'])) AND (isset($_GET['defarc'])) AND (isset($_GET['definf'])) AND (isset($_GET['defcav'])) ) {
 
    $attaque = $_GET['attaque'];
    $defarc  = $_GET['defarc'];
    $definf  = $_GET['definf'];
    $defcav  = $_GET['defcav'];
 
    header ("Content-type: image/png");
 
    $image = imagecreate(600,600);
 
    $image = imagecreatefrompng("Img/bg-stats.png");
 
 
    $blanc  = imagecolorallocate($image, 246, 243, 236);
    $noir   = imagecolorallocate($image, 0, 0, 0);
    $maron  = imagecolorallocate($image, 98, 74, 46);
    $bleu   = imagecolorallocate($image, 213, 208, 170);
    $troupes= imagecolorallocate($image, 0, 0, 0);
    $rouge  = imagecolorallocate($image, 255, 0, 0);
 
    imagerectangle($image, 0, 0, 599, 599, $noir);                    // rectangle bords
 
    imagestring($image, 5, 270, 10, "Attaque", $maron);               // Texte : Attaque
    imagestringup($image, 5, 570, 370, "Defense Infanterie", $maron); // Texte : Déf Infanterie
    imagestring($image, 5, 230, 570, "Defense Cavalerie", $maron);    // Texte : Déf Cavalerie
    imagestringup($image, 5, 20, 360, "Defense Archers", $maron);     // Texte : Déf Archers
 
    $max = max($attaque, $defarc, $definf, $defcav);                  // Récupère la valeur maxpour avoir le 100%
 
    $peratt    = 300 - (($attaque / ($max / 100)) * 2.5);             // Pourcentage Attaque
    $perdefinf = 300 + (($definf / ($max / 100)) * 2.5);              // Pourcentage Défense Infanterie
    $perdefcav = 300 + (($defcav / ($max / 100)) * 2.5);              // Pourcentage Défense Cavalerie
    $perdefarc = 300 - (($defarc / ($max / 100)) * 2.5);              // Pourcentage Défense Archers
 
    $values = array(300, $peratt,                                     // Coordonnées point Attaque pour polygone
                    $perdefinf, 300,                                  // Coordonnées point Def Inf pour polygone
                    300, $perdefcav,                                  // Coordonnées point Def Cav pour polygone
                    $perdefarc, 300);                                 // Coordonnées point Def Arc pour polygone
 
    imagefilledpolygon($image, $values, 4, $rouge);                   // Polygone avec les valeurs
 
    imageline($image, 40, 300, 559, 300, $noir);                      // Trait X
    imageline($image, 300, 40, 300, 559, $noir);                      // Trait Y
 
    imagedashedline($image, 50,  300, 300,  50, $maron);              // dashed 1.0
    imagedashedline($image, 300, 50,  550, 300, $maron);              // dashed 2.0
    imagedashedline($image, 550, 300, 300, 550, $maron);              // dashed 3.0
    imagedashedline($image, 50,  300, 300, 550, $maron);              // dashed 4.0
 
    imagedashedline($image, 110.5, 300, 300, 110.5, $maron);          // dashed 1.1
    imagedashedline($image, 300, 110.5,  487.5, 300, $maron);         // dashed 2.1
    imagedashedline($image, 487.5, 300, 300, 487.5, $maron);          // dashed 3.1
    imagedashedline($image, 110.5, 300, 300, 487.5, $maron);          // dashed 4.1
 
    imagedashedline($image, 173, 300, 300, 173, $maron);              // dashed 1.2
    imagedashedline($image, 300, 173, 425, 300, $maron);              // dashed 2.2
    imagedashedline($image, 425, 300, 300, 425, $maron);              // dashed 3.2
    imagedashedline($image, 173, 300, 300, 425, $maron);              // dashed 4.2
 
    imagedashedline($image, 235.5, 300, 300, 235.5, $maron);           // dashed 1.3
    imagedashedline($image, 300, 235.5, 362.5, 300, $maron);           // dashed 2.3
    imagedashedline($image, 362.5, 300, 300, 362.5, $maron);           // dashed 3.3
    imagedashedline($image, 235.5, 300, 300, 362.5, $maron);           // dashed 4.3
 
    imagepng($image);
    imagedestroy($image);
} else {
    header("Content-Type: image/png");
    $image = imagecreate(500, 500) or die("Impossible d'initialiser la bibliothèque GD");
    $background_color = imagecolorallocate($image, 0, 0, 0);
    $text_color = imagecolorallocate($image, 233, 14, 91);
    imagestring($image, 5, 60, 135,  "Donnees Incorrectes", $text_color);
    imagepng($image);
    imagedestroy($image);
}
?>

Second test

Au lieu de faire des lignes pointillées (imagedashedline), pourquoi ne pas plutôt faire des polygones pointillés :
polygone.php

<?php
// Crée une image de 600x600 pixels
$image = imagecreate(600, 600);
 
$white = imagecolorallocate($image, 246, 243, 236);
$marron  = imagecolorallocate($image, 98, 74, 46);
$black   = imagecolorallocate($image, 0, 0, 0);
 
// Définit le style : Les 4 premiers pixels sont blancs et les 4 suivants
// sont transparents. Ceci va créer l'effet de pointillé
$style = Array(
                $marron,
                $marron,
                $marron,
                $marron,
                IMG_COLOR_TRANSPARENT,
                IMG_COLOR_TRANSPARENT,
                IMG_COLOR_TRANSPARENT,
                IMG_COLOR_TRANSPARENT
                );
 
imagesetstyle($image, $style);
 
imageline($image, 40, 300, 559, 300, $black); // Trait X
imageline($image, 300, 40, 300, 559, $black); // Trait Y
 
$ecart1 = 0; // Ecart largeur
$ecart2 = 0; // Ecart longueur
 
for ($i=0;$i<4;$i++) {
imagepolygon($image, array(
        235.5-$ecart1, 300, //O
        300, 235.5-$ecart1, //S
        362.5+$ecart2, 300, //E
        300, 362.5+$ecart2, //N
    ),
    4,
    IMG_COLOR_STYLED);
    $ecart1=$ecart1+60.5; // C'est l'écart en largeur sur tes anciennes lignes
    $ecart2=$ecart2+62.5; // C'est l'écart en longueur sur tes anciennes lignes
}
 
// Sauvegarde de l'image
imagepng($image, './polygones.png');
imagedestroy($image);
?>

Fichier : wiki › php › imagecreate - dernière modification le 10/10/2016 à 03:53 par Trollab


trollab.org, Since .... a long time ago, in a galaxy far, far away ...