rollerman Posté(e) le 21 décembre 2005 Partager Posté(e) le 21 décembre 2005 bonjour. j'aimerais faire une barre de progression avec un pourcentage voir ici (tout en bas) mai je n'y arrive pas (je debute en php ). j'ai donc essayer quelque script dont celui ci c'est exactement ce que je veu mai il fo rentrer un endroi x,y (les pixel de l'ecran) ou l'on veut qu'il s'affiche et si la resolution change ça ne colle plus. j'ai essayer de le modifier un peu mais la barre n'est plus en face du texte (elle est en dessou). si quelqu'un pouvait m'aider. merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
an0nyme Posté(e) le 21 décembre 2005 Partager Posté(e) le 21 décembre 2005 tu le fait comment? avec gd ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
rollerman Posté(e) le 21 décembre 2005 Auteur Partager Posté(e) le 21 décembre 2005 euu c'est quoi gd ? (gros débutant j'avais prevenu ) Lien vers le commentaire Partager sur d’autres sites More sharing options...
an0nyme Posté(e) le 21 décembre 2005 Partager Posté(e) le 21 décembre 2005 gd ça veut dire gros débutant jsutement nan sérieusement c'est le système de manipulation d'images que tu utiliuse avec PHP il y a un tutoriel sur www.phpdebutant.org, dans la barre à gauche, le 21 : images dynamiques je pense que c'est ce que tu cherche non? Lien vers le commentaire Partager sur d’autres sites More sharing options...
sbruchet Posté(e) le 21 décembre 2005 Partager Posté(e) le 21 décembre 2005 Je trouve que GD est gourmant en resource alors qu'il suffirait d'utiliser un style ce serait plus simple. style="background-image: url(barre.jpg);background-position-x :<? echo $pour ?>;background-position-x : 100%" avec $pour contenant le pourcentage de la barre de progression non ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
an0nyme Posté(e) le 21 décembre 2005 Partager Posté(e) le 21 décembre 2005 justement c'est pas ça qui fait que ça change suivant la résolution ??? Lien vers le commentaire Partager sur d’autres sites More sharing options...
sbruchet Posté(e) le 21 décembre 2005 Partager Posté(e) le 21 décembre 2005 Oui et non la le style fixe l'image d'arrière plan en fonction de la taille de l'élément ou elle est mise mais si l'élément à un width fixe par exemple 200px ca change pas en fonction de la résolution contrairement si la width est en pourcentage. Cba Lien vers le commentaire Partager sur d’autres sites More sharing options...
an0nyme Posté(e) le 21 décembre 2005 Partager Posté(e) le 21 décembre 2005 en fait faut mettre ça en pourcentage du conteneur non? avec width : x%; Lien vers le commentaire Partager sur d’autres sites More sharing options...
sbruchet Posté(e) le 21 décembre 2005 Partager Posté(e) le 21 décembre 2005 Je sais plus de quoi on parle la Lien vers le commentaire Partager sur d’autres sites More sharing options...
rollerman Posté(e) le 21 décembre 2005 Auteur Partager Posté(e) le 21 décembre 2005 bon voila j'utilise la methode gd (c'est pas très lisible mais sa marche ) la barre <?php header ("Content-type: image/png"); $largeur = 102; $hauteur = 15; $im = ImageCreate ($largeur, $hauteur) or die ("Erreur lors de la création de l'image"); $blanc = ImageColorAllocate ($im, 255, 255, 255); // couleur du fond $noir = ImageColorAllocate ($im, 0, 0, 0); // couleur du cadre et des chiffres $gris = ImageColorAllocate ($im, 180, 180, 180); // couleur de la barre d'avancement // on déssine un rectangle vide pour faire plus jolie :) ImageRectangle ($im, 0, 0, $largeur-1, $hauteur-1, $noir); // tracé de la barre include "wbfhq_bestkill.php"; $rank = $bf2stats['rank']; $score = $bf2stats['scor']; $rank0 = 0; $rank1 = 150; $rank2 = 500; $rank3 = 800; $rank4 = 2500; $rank5 = 5000; $rank6 = 8000; $rank7 = 20000; $rank8 = 20000; $rank9 = 50000; $rank10 = 0; $rank11 = 200000; if ($rank == 0) { $nxtscore0 = ($score - $rank0) / ($rank1 - $rank0) * 100; // calcul du pourcentage $pourcentage0 = round($nxtscore0, 2); for ($pourcentage=0; $pourcentage<=100; $pourcentage++) { ImageFilledRectangle ($im, 1, 1, $pourcentage0, 13, $gris); }} else if ($rank == 1) { $nxtscore1 = ($score - $rank1) / ($rank2 - $rank1) * 100; $pourcentage1 = round($nxtscore1, 2); for ($pourcentage=0; $pourcentage<=100; $pourcentage++) { ImageFilledRectangle ($im, 1, 1, $pourcentage1, 13, $gris); }} else if ($rank == 2) { $nxtscore2 = ($score - $rank2) / ($rank3 - $rank2) * 100; $pourcentage2 = round($nxtscore2, 2); for ($pourcentage=0; $pourcentage<=100; $pourcentage++) { ImageFilledRectangle ($im, 1, 1, $pourcentage2, 13, $gris); }} else if ($rank == 3) { $nxtscore3 = ($score - $rank3) / ($rank4 - $rank3) * 100; $pourcentage3 = round($nxtscore3, 2); for ($pourcentage=0; $pourcentage<=100; $pourcentage++) { ImageFilledRectangle ($im, 1, 1, $pourcentage3, 13, $gris); }} else if ($rank == 4) { $nxtscore4 = ($score - $rank4) / ($rank5 - $rank4) * 100; $pourcentage4 = round($nxtscore4, 2); for ($pourcentage=0; $pourcentage<=100; $pourcentage++) { ImageFilledRectangle ($im, 1, 1, $pourcentage4, 13, $gris); }} else if ($rank == 5) { $nxtscore5 = ($score - $rank5) / ($rank6 - $rank5) * 100; $pourcentage5 = round($nxtscore5, 2); for ($pourcentage=0; $pourcentage<=100; $pourcentage++) { ImageFilledRectangle ($im, 1, 1, $pourcentage5, 13, $gris); }} else if ($rank == 6) { $nxtscore6 = ($score - $rank6) / ($rank7 - $rank6) * 100; $pourcentage6 = round($nxtscore6, 2); for ($pourcentage=0; $pourcentage<=100; $pourcentage++) { ImageFilledRectangle ($im, 1, 1, $pourcentage6, 13, $gris); }} else if ($rank == 7) { $nxtscore7 = ($score - $rank7) / ($rank8 - $rank7) * 100; $pourcentage7 = round($nxtscore7, 2); for ($pourcentage=0; $pourcentage<=100; $pourcentage++) { ImageFilledRectangle ($im, 1, 1, $pourcentage7, 13, $gris); }} else if ($rank == 8) { $nxtscore8 = ($score - $rank8) / ($rank9 - $rank8) * 100; $pourcentage8 = round($nxtscore8, 2); for ($pourcentage=0; $pourcentage<=100; $pourcentage++) { ImageFilledRectangle ($im, 1, 1, $pourcentage8, 13, $gris); }} else if ($rank == 9) { $nxtscore9 = ($score - $rank9) / ($rank10 - $rank9) * 100; $pourcentage9 = round($nxtscore9, 2); for ($pourcentage=0; $pourcentage<=100; $pourcentage++) { ImageFilledRectangle ($im, 1, 1, $pourcentage9, 13, $gris); }} else if ($rank == 10) { $nxtscore10 = ($score - $rank10) / ($rank11 - $rank10) * 100; $pourcentage10 = round($nxtscore10, 2); for ($pourcentage=0; $pourcentage<=100; $pourcentage++) { ImageFilledRectangle ($im, 1, 1, $pourcentage10, 13, $gris); }} else if ($rank == 11) { $nxtscore11 = ($score - $rank11) / ($rank12 - $rank11) * 100; $pourcentage11 = round($nxtscore11, 2); for ($pourcentage=0; $pourcentage<=100; $pourcentage++) { ImageFilledRectangle ($im, 1, 1, $pourcentage11, 13, $gris); }} else if ($rank == 12) {$nxtscore12 = ($score - $rank12) / ($rank12 - $rank12) * 100; $pourcentage12 = round($nxtscore12, 2); for ($pourcentage=0; $pourcentage<=100; $pourcentage++) { ImageFilledRectangle ($im, 1, 1, $pourcentage12, 13, $gris); }} ImagePng ($im); ?> vous me dite s'il existe une methode plus simple parce que la sa fait beaucoup de ligne pour une petite barre il ne me reste plus qua metre le pourcentage sur la barre et c'est bon . Lien vers le commentaire Partager sur d’autres sites More sharing options...
rollerman Posté(e) le 21 décembre 2005 Auteur Partager Posté(e) le 21 décembre 2005 bon voila ma barre est fini (enfin presque). comment je fait pour ajouter le signe "%" ? encore une petite question, comment je fais pour que mon image soi enregistrable ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Baldurien Posté(e) le 22 décembre 2005 Partager Posté(e) le 22 décembre 2005 En général, une barre de progression c'est un pourcentage de 0 à 1 (ou 0 à 100%). Si tu prends une image qui fait 1px de largeur, de la couleur de la barre de progression. Et tu détermine la largeur de l'image quand le pourcentage vaut 1 (100%). Ex: 400px = 100%. Et là, paf: <img src="mabarre.png" width="<?php echo floor(400*$progress); ?>" alt="<?php echo round($progress*100, 2); ?> %" /> Pas besoin de GD. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.