Barre de pourcentage adaptable (librairie gd utilisée)

Contenu du snippet

Ce code sert a faire une barre de pourcentage ! Cela peut être utile dans beaucoup de cas.. A vous de l'adapter pour votre usage !

On peut choisir la longueur et la largeur, et on peut aussi augmenter la clarté selon le pourcentage.

Utilisation : percent.php?p=30

Verifications effectuées :
  • p est défini
  • 0 =< p =< 100
  • p est entier
  • longueur multiple de cent

Source / Exemple :


<?
//A parametrer :
$longeur = 400;
$hauteur = 100;
$degrade = 0;
//Fin

header ("Content-type: image/png");
$image = imagecreate($longeur,$hauteur); //Création de l'image

//On creer les couleurs

$blanc = imagecolorallocate($image, 255, 255, 255);
$orange = imagecolorallocate($image, 255, 128, 0);
$bleu = imagecolorallocate($image, 0, 0, 255);
$noir = imagecolorallocate($image, 0, 0, 0);
$onep = $longeur / 100;

if(!isset($_GET['p']))
{
$msg = "Il faut une variable p ! ex : percent.php?p=50";
imagestring($image, 4, 5, 5, "$msg", $bleu);
imagepng($image);
}
elseif(($_GET['p'] > 100) or ($_GET['p'] < 0))
{
$msg = "La valeur de P doit être comprise entre 0 et 100";
imagestring($image, 4, 5, 5, "$msg", $bleu);
imagepng($image);
}
elseif(!is_numeric($_GET['p']))
{
$msg = "P doit être un chiffre entier !";
imagestring($image, 4, 5, 5, "$msg", $bleu);
imagepng($image);
}
elseif($onep != intval($onep))
{
$msg = "Pour une bonne précision, la longueur doit être un multiple de 100 !!";
imagestring($image, 4, 5, 5, "$msg", $bleu);
imagepng($image);
}
else
{
$p = $_GET['p'];
$p = intval($p);
$totalp = $onep * $p;
$msg = "$p% demandés >> $onep pixels / % >> $totalp pixels";
ImageFilledRectangle($image,0,0,$totalp,$hauteur,$orange);
if($degrade) //Si on choisit le deuxieme mode..
{
$vert = $p * 255 / 100; //Calculer le ton
$vert = intval($vert);
$rec = imagecolorallocate($image, 0, $vert, 0);
ImageFilledRectangle($image,0,0,$totalp,$hauteur,$rec);
$fmsg = "Longeur : $longeur, Hauteur : $hauteur. V : $vert";
}
else
{
ImageFilledRectangle($image,0,0,$totalp,$hauteur,$orange);
$fmsg = "Longeur : $longeur, Hauteur : $hauteur.";
}
imagestring($image, 4, 5, 5, $fmsg, $bleu);
imagestring($image, 4, 5, 35, $msg, $bleu);
ImageRectangle($image,0,0,$longeur-1,$hauteur-1,$noir);
ImageRectangle($image,0,0,$totalp,$hauteur-1,$noir);
imagepng($image); //Afficher l'image
}
?>

Conclusion :


Variables :

$_GET['p'] : Pourcentage demandé
$longeur : longueur du document
$hauteur : hauteur du document
$degrade : Augmenter la clarté selon le pourcentage ?
$image : contient l'image
$blanc,$orange,$bleu,$noir : Couleurs
$onep : Taille en pixel d'un pourcent
$msg : Message a afficher
$fmsg : Message a afficher
$totalp = Pixels totaux a coloriés (onep * p)

Pas de bugs connus (Peut etre des inconnus ? :o :p)
Ce code peut être optimisé par exemple creer un pourcentage vertical, un dégradé, etc...
Toute suggestions et questions acceptés !!

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.