begin process at 2012 05 27 16:52:40
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > BARRE DE POURCENTAGE ADAPTABLE (LIBRAIRIE GD UTILISÉE)

BARRE DE POURCENTAGE ADAPTABLE (LIBRAIRIE GD UTILISÉE)


 Information sur la source

Note :
8,5 / 10 - par 2 personnes
8,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Niveau :Débutant Date de création :20/05/2005 Vu :8 652

Auteur : DarkM60

Ecrire un message privé
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
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

  • <?
  • //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
  • }
  • ?>
<?
//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 !!


 Sources du même auteur

Source avec Zip SCRIPT D'ENVOI DE SMS DEPUIS SFR
Source avec Zip KORREKTOR, FAÎTES TRAVAILLER VOS VISITEURS !
ORDRE DES LETTRES DANS UN MOT, ETUDE DE L'UNIVERSITÉ DE CAMB...
TRI PAR INSERTION
LIRE UNE DATABASE EN TXT

 Sources de la même categorie

Source avec Zip Source avec une capture CAMEMBERT BD par dardelphi
Source avec une capture AMÉLIORATION : CAMEMBERT par asphator
GESTION DE COULEUR par manuche
Source avec Zip NAVIGATOR (+CSSDETECTOR) par xXVoxPopuliXx
COMMENT, AVEC GD, DESSINER UN RECTANGLE TRANSPARENT PLEIN AV... par Rainbow

Commentaires et avis

Commentaire de Anthomicro le 20/05/2005 07:35:06

Salut,

Heu... Mais ta barre est super simple et donc ton script perd de son intérêt. Ce que je veux dire, c'est que tu peux faire ça sans GD en prenant une texture qui fera ton image, et en adaptant sa largeur en fonction du pourcentage.

J'ai fait ça sur mon site, ça ne nécessite pas GD, ça prend deux lignes et c'est plus rapide tout en étant moins gourmand en ressources.

Pour rajouter un intérêt à cette source tu pourrais rajouter des fonctions permettant d'avoir des effets sur les images, rajoutant le pourcentage sur l'image, etc...

a +

Commentaire de garfield90 le 20/05/2005 10:56:50

Salut,

tu pourrais aussi passé la couleur au format hexa #AAA et/ou #AAAAAA ce qui permettrai d'avoir une couleur différentes a celle que tu as implémenté.
ainsi que tout tes autres variables (longueur, hauteur, degradé )

de plus, is_numeric détermine si la valeur est un nombre et non pas un entier (is_int)

Cordialement

Commentaire de DarkM60 le 20/05/2005 20:04:21

>> Anthomicro

C'est pour apprendre ! :\. Ca ne nécéssite pas GD ? bah si tu utilise pas GD la taille est pas adaptable !

>> Garfield90

Effectivement je pourrais pour la couleur.
Ensuite avec is_int il y avait des problemes et je prefere qu'on puisse quand même rentrer un nombre.

(Essai de remplacer is_numeric par is_int tu verras le pb)

Commentaire de Anthomicro le 20/05/2005 20:06:29

"bah si tu utilise pas GD la taille est pas adaptable !"

<img src="machin" style="width:Xpx" alt="" /> ou X est une largeur en pixels...

Je vois pas en quoi avec une texture uniforme ce n'est pas adaptable, bien au contraire...

Commentaire de garfield90 le 20/05/2005 20:25:11

pourquoi fait tu la vérification sur le type apres la vérification sur le contenu $_GET['p'] ?

Voila, sinon Anthomicro a totalement raison sur ce qu'il dit

Commentaire de larr le 21/05/2005 15:37:57

Avant de dire que c'est pas obligé d'utiliser la gd vous pouvez dire que c'est un bon exemple d'utilisation de gd
mis a part qui manque un peus de commentaire pour moi
en gros pour moi c'est une bonne source

Commentaire de malalam le 22/05/2005 12:02:13 administrateur CS

=> Larr
bah non...ce n'est pas un bon exemple d'utilisation de la GD justement. Quand on peut eviter d'utiliser la GD, autant le faire : c'est tres gourmand! Cela devrait etre reserve a des utilisations complexes de graphiques. La effectivement, ca n'a aucun interet, a moins de compliquer largement la barre, comme le suggere Antho.
Je ne pige pas non plus pour le is_numeric().

Commentaire de Anthomicro le 22/05/2005 12:11:29

Je confirme...

On dit pas que la source est inutile, on dit que tu pourrais utiliser trois fois moins de fonctionnalités et de ressources serveur pour faire la même chose ou presque...

Commentaire de GRenard le 23/05/2005 02:35:04

pour les nombre hexadécimal, tu peux les passer en nombre... tu prends 2 par 2 et tu fais intval($valeur, 16)...

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,451 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales