begin process at 2012 05 27 21:36:59
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > GÉNÉRER UNE PROGRESSBAR (BARRE DE PROGRESSION) EN FORMAT IMAGE

GÉNÉRER UNE PROGRESSBAR (BARRE DE PROGRESSION) EN FORMAT IMAGE


 Information sur la source

Note :
5 / 10 - par 1 personne
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Classé sous :progressbar, image, dynamique Niveau :Débutant Date de création :15/05/2009 Vu :7 123

Auteur : Tioneb

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Cette source est plutôt destinée à être utilisée pour afficher des états d'avancements de projets, l'avancement de dons comme on peut trouver sur certains sites. Pour résumer, ça sert pour des choses qui avancent doucement.
Donc pour utiliser cette source, il faut placer le code ci-dessous dans un fichier php que vous inclurez dans les pages qui devront utiliser la fonction. Ensuite, il suffit d'appeler la dite fonction et de mémoriser l'emplacement du PNG généré pour l'afficher.
On peut tout paramétrer, taille de l'image, les couleurs des différents éléments. Le pourcentage affiché est centré automatiquement.

La fonction retourne TRUE ou FALSE en fonction du résultat de la création d'image.

Merci à ceacy pour sa source http://www.phpcs.com/codes/SIGNATURE-DYNAMIQUE-PNG _22269.aspx dont je me suis inspiré (il en reste plus grand chose!)

Source

  • //---- fichier img.progressbar.php
  • <?php
  • /*
  • Permet de générer une image du type progressbar
  • Merci à ceacy pour sa source http://www.phpcs.com/codes/SIGNATURE-DYNAMIQUE-PNG_22269.aspx dont je me suis inspiré (il en reste plus grand chose!)
  • $img_width = largeur de l'image
  • $img_height = hauteur de l'image
  • $color_txt = couleur texte
  • $color_face = couleur de la partie correspondant au pourcentage
  • $color_border = couleur de bordure
  • $color_backgrnd = couleur de fond
  • $taille_texte = taille du texte compris entre 1 et 5
  • $valeur = la valeur virtuelle du pourcentage
  • $valeur_max = la valeur virtuelle maxi du pourcentage (virtuel signifie qu'on peut entrer des valeurs comme 1/3, 18/20 ou 421/6854; les pourcentages (sur 100) sont calculé après
  • $arrondi = nombre de chiffres après la virgule (peut être = 0)
  • $nom_fichier = chemin (relatif) où enregistrer l'image
  • */
  • function générer_progressbar($img_width, $img_height, $color_txt, $color_face, $color_border, $color_backgrnd, $taille_texte, $valeur, $valeur_max, $arrondi, $nom_fichier){
  • switch ($taille_texte){ //va permettre de centrer le texte en fonction de la taille du texte choisie
  • case 1:
  • $largeur_caractere = 5;
  • $hauteur_caractere = 7;
  • break;
  • case 2:
  • $largeur_caractere = 6;
  • $hauteur_caractere = 10;
  • break;
  • case 3:
  • $largeur_caractere = 7;
  • $hauteur_caractere = 12;
  • break;
  • case 4:
  • $largeur_caractere = 8;
  • $hauteur_caractere = 13;
  • break;
  • case 5:
  • $largeur_caractere = 9;
  • $hauteur_caractere = 14;
  • break;
  • }
  • if ($valeur === -1){
  • $pourcent = 0;
  • $str_pourcent = "Aucun parametre !";
  • } else {
  • $pourcent = $valeur * 100 / $valeur_max; //calcul du vrai pourcentage (sur 100)
  • $str_pourcent = number_format($pourcent, $arrondi, ',', ' '); //met en forme le pourcentage
  • }
  • $len_pourcent = strlen($str_pourcent) + 1; //on récupère le nombre de caractères tu texte qui sera affiché (le +1 c'est parce qu'on ajoutera le sigle %)
  • $pos_pourcent = $pourcent * $img_width / 100; //calcul de la partie à colorer en fonction de la taille de l'image
  • $im = @imagecreate($img_width, $img_height) or die ("Impossible d'initialiser la librairie GD");
  • // Fond et couleur de texte
  • imagecolorallocate($im, $color_backgrnd[0], $color_backgrnd[1], $color_backgrnd[2]); // background
  • $color_border = imagecolorallocate($im, $color_border[0], $color_border[1], $color_border[2]); //conversion des couleurs
  • $color_face = imagecolorallocate($im, $color_face[0], $color_face[1], $color_face[2]); //conversion des couleurs
  • for ($i = 0; $i < $pos_pourcent; $i++){ //boucle pour colorer la partie correspondant au pourcentage
  • imageline($im, $i, 0, $i, $img_height, $color_face);
  • }
  • imageline($im, 0, 0, $img_width, 0, $color_border); // Bordure horizontale supérieure
  • imageline($im, 0, 0, 0, $img_height, $color_border); // Bordure verticale de gauche
  • imageline($im, 0, $img_height-1, $img_width-1, $img_height-1, $color_border); // Bordure horizontale inférieure
  • imageline($im, $img_width-1, 0, $img_width-1, $img_height-1, $color_border); // Bordure verticale de droite
  • // Texte
  • $posX_str_pourcent = ($img_width - $len_pourcent * $largeur_caractere) / 2; //calcule la position X du texte
  • $posY_str_pourcent = ($img_height - $hauteur_caractere) / 2; //calcule la position Y du texte
  • if ($valeur === -1){
  • imagestring ($im, $taille_texte, $posX_str_pourcent, $posY_str_pourcent, $str_pourcent, imagecolorallocate($im, $color_txt[0], $color_txt[1], $color_txt[2]));
  • } else {
  • //bool imagestring ( resource $image , int $font , int $x , int $y , string $string , int $color )
  • imagestring ($im, $taille_texte, $posX_str_pourcent, $posY_str_pourcent, $str_pourcent. "%", imagecolorallocate($im, $color_txt[0], $color_txt[1], $color_txt[2]));
  • }
  • // Création du PNG
  • return imagepng ($im, $nom_fichier, 0, NULL);
  • }
  • ?>
  • //----- à mettre dans vos script pour appeler la fonction
  • <?php
  • //inclure la fonction
  • include("img.progressbar.php");
  • //pour générer une image (c'est un exemple)
  • générer_progressbar(300, 20, array("231", "231", "231"), array("221", "105", "0"), array("210", "169", "0"), array("48", "48", "57"), 3, 52, 100, 2, "./test.png");
  • //pour afficher l'image (en fait il suffit de placer une balise image classique)
  • echo "<img src=\"./test.png\" border=\"0\" alt=\"Impossible d'afficher l'image\" /><br>\n";
  • ?>
//---- fichier img.progressbar.php
<?php
/*
	Permet de générer une image du type progressbar
	Merci à ceacy pour sa source http://www.phpcs.com/codes/SIGNATURE-DYNAMIQUE-PNG_22269.aspx dont je me suis inspiré (il en reste plus grand chose!)
	
	$img_width = largeur de l'image
	$img_height = hauteur de l'image
	$color_txt = couleur texte
	$color_face = couleur de la partie correspondant au pourcentage
	$color_border = couleur de bordure
	$color_backgrnd = couleur de fond
	$taille_texte = taille du texte compris entre 1 et 5
	$valeur = la valeur virtuelle du pourcentage
	$valeur_max = la valeur virtuelle maxi du pourcentage (virtuel signifie qu'on peut entrer des valeurs comme 1/3, 18/20 ou 421/6854; les pourcentages (sur 100) sont calculé après
	$arrondi = nombre de chiffres après la virgule (peut être = 0)
	$nom_fichier = chemin (relatif) où enregistrer l'image
*/
function générer_progressbar($img_width, $img_height, $color_txt, $color_face, $color_border, $color_backgrnd, $taille_texte, $valeur, $valeur_max, $arrondi, $nom_fichier){
	switch ($taille_texte){		//va permettre de centrer le texte en fonction de la taille du texte choisie
		case 1:
			$largeur_caractere = 5;
			$hauteur_caractere = 7;
			break;
		case 2:
			$largeur_caractere = 6;
			$hauteur_caractere = 10;
			break;
		case 3:
			$largeur_caractere = 7;
			$hauteur_caractere = 12;
			break;
		case 4:
			$largeur_caractere = 8;
			$hauteur_caractere = 13;
			break;
		case 5:
			$largeur_caractere = 9;
			$hauteur_caractere = 14;
			break;
	}
	if ($valeur === -1){
		$pourcent = 0;
		$str_pourcent = "Aucun parametre !";
	} else {
		$pourcent = $valeur * 100 / $valeur_max;	//calcul du vrai pourcentage (sur 100)
		$str_pourcent = number_format($pourcent, $arrondi, ',', ' ');	//met en forme le pourcentage
	}
	
	$len_pourcent = strlen($str_pourcent) + 1;	//on récupère le nombre de caractères tu texte qui sera affiché (le +1 c'est parce qu'on ajoutera le sigle %)
	$pos_pourcent = $pourcent * $img_width / 100;	//calcul de la partie à colorer en fonction de la taille de l'image
	$im = @imagecreate($img_width, $img_height) or die ("Impossible d'initialiser la librairie GD");
	// Fond et couleur de texte
	imagecolorallocate($im, $color_backgrnd[0], $color_backgrnd[1], $color_backgrnd[2]); // background
	$color_border = imagecolorallocate($im, $color_border[0], $color_border[1], $color_border[2]);	//conversion des couleurs
	$color_face = imagecolorallocate($im, $color_face[0], $color_face[1], $color_face[2]);	//conversion des couleurs
	
	for ($i = 0; $i < $pos_pourcent; $i++){	//boucle pour colorer la partie correspondant au pourcentage
		imageline($im, $i, 0, $i, $img_height, $color_face);
	}
	
	imageline($im, 0, 0, $img_width, 0, $color_border); // Bordure horizontale supérieure
	imageline($im, 0, 0, 0, $img_height, $color_border); // Bordure verticale de gauche
	imageline($im, 0, $img_height-1, $img_width-1, $img_height-1, $color_border); // Bordure horizontale inférieure
	imageline($im, $img_width-1, 0, $img_width-1, $img_height-1, $color_border); // Bordure verticale de droite
	// Texte
	$posX_str_pourcent = ($img_width - $len_pourcent * $largeur_caractere) / 2;	//calcule la position X du texte
	$posY_str_pourcent = ($img_height - $hauteur_caractere) / 2;	//calcule la position Y du texte
	if ($valeur === -1){
		imagestring ($im, $taille_texte, $posX_str_pourcent, $posY_str_pourcent, $str_pourcent, imagecolorallocate($im, $color_txt[0], $color_txt[1], $color_txt[2]));
	} else {
		//bool imagestring  ( resource $image  , int $font  , int $x  , int $y  , string $string  , int $color  )
		imagestring ($im, $taille_texte, $posX_str_pourcent, $posY_str_pourcent, $str_pourcent. "%", imagecolorallocate($im, $color_txt[0], $color_txt[1], $color_txt[2]));
	}
	// Création du PNG
	return imagepng ($im, $nom_fichier, 0, NULL);
}
?>

//----- à mettre dans vos script pour appeler la fonction
<?php
//inclure la fonction
include("img.progressbar.php");

//pour générer une image (c'est un exemple)
générer_progressbar(300, 20, array("231", "231", "231"), array("221", "105", "0"), array("210", "169", "0"), array("48", "48", "57"), 3, 52, 100, 2, "./test.png");

//pour afficher l'image (en fait il suffit de placer une balise image classique)
echo "<img src=\"./test.png\" border=\"0\" alt=\"Impossible d'afficher l'image\" /><br>\n";
?>

 Conclusion

Bien évidement il faut que la librairie GD soit installée sur le serveur.


 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

 Sources en rapport avec celle ci

REDIMENSIONNEMENT D'IMAGE PHP par JStevens
Source avec Zip Source avec une capture GESTIONNAIRE DE NEWS BASIQUE AVEC UPLOAD D'IMAGES par cod57
CRÉER UNE IMAGE À PARTIR DU TEXTE par dilar
Source avec Zip Source avec une capture CAMEMBERT 2D/3D par softwareds
GRAPHIQUE EN DYNAMIQUE par dark_naruto25

Commentaires et avis

Commentaire de bentom32390 le 16/05/2009 07:10:31

manque les sources

Commentaire de lefter le 16/05/2009 09:26:46

Il ne manque rien :

//---- fichier img.progressbar.php  --//
<?php
/*
Permet de générer une image du type progressbar
Merci à ceacy pour sa source http://www.phpcs.com/codes/SIGNATURE-DYNAMIQUE-PNG_22269.aspx dont je me suis inspiré (il en reste plus grand chose!)

$img_width = largeur de l'image
$img_height = hauteur de l'image
$color_txt = couleur texte
$color_face = couleur de la partie correspondant au pourcentage
$color_border = couleur de bordure
$color_backgrnd = couleur de fond
$taille_texte = taille du texte compris entre 1 et 5
$valeur = la valeur virtuelle du pourcentage
$valeur_max = la valeur virtuelle maxi du pourcentage (virtuel signifie qu'on peut entrer des valeurs comme 1/3, 18/20 ou 421/6854; les pourcentages (sur 100) sont calculé après
$arrondi = nombre de chiffres après la virgule (peut être = 0)
$nom_fichier = chemin (relatif) où enregistrer l'image
*/
function générer_progressbar($img_width, $img_height, $color_txt, $color_face, $color_border, $color_backgrnd, $taille_texte, $valeur, $valeur_max, $arrondi, $nom_fichier){
switch ($taille_texte){ //va permettre de centrer le texte en fonction de la taille du texte choisie
case 1:
$largeur_caractere = 5;
$hauteur_caractere = 7;
break;
case 2:
$largeur_caractere = 6;
$hauteur_caractere = 10;
break;
case 3:
$largeur_caractere = 7;
$hauteur_caractere = 12;
break;
case 4:
$largeur_caractere = 8;
$hauteur_caractere = 13;
break;
case 5:
$largeur_caractere = 9;
$hauteur_caractere = 14;
break;
}
if ($valeur === -1){
$pourcent = 0;
$str_pourcent = "Aucun parametre !";
} else {
$pourcent = $valeur * 100 / $valeur_max; //calcul du vrai pourcentage (sur 100)
$str_pourcent = number_format($pourcent, $arrondi, ',', ' '); //met en forme le pourcentage
}

$len_pourcent = strlen($str_pourcent) + 1; //on récupère le nombre de caractères tu texte qui sera affiché (le +1 c'est parce qu'on ajoutera le sigle %)
$pos_pourcent = $pourcent * $img_width / 100; //calcul de la partie à colorer en fonction de la taille de l'image
$im = @imagecreate($img_width, $img_height) or die ("Impossible d'initialiser la librairie GD");
// Fond et couleur de texte
imagecolorallocate($im, $color_backgrnd[0], $color_backgrnd[1], $color_backgrnd[2]); // background
$color_border = imagecolorallocate($im, $color_border[0], $color_border[1], $color_border[2]); //conversion des couleurs
$color_face = imagecolorallocate($im, $color_face[0], $color_face[1], $color_face[2]); //conversion des couleurs

for ($i = 0; $i < $pos_pourcent; $i++){ //boucle pour colorer la partie correspondant au pourcentage
imageline($im, $i, 0, $i, $img_height, $color_face);
}

imageline($im, 0, 0, $img_width, 0, $color_border); // Bordure horizontale supérieure
imageline($im, 0, 0, 0, $img_height, $color_border); // Bordure verticale de gauche
imageline($im, 0, $img_height-1, $img_width-1, $img_height-1, $color_border); // Bordure horizontale inférieure
imageline($im, $img_width-1, 0, $img_width-1, $img_height-1, $color_border); // Bordure verticale de droite
// Texte
$posX_str_pourcent = ($img_width - $len_pourcent * $largeur_caractere) / 2; //calcule la position X du texte
$posY_str_pourcent = ($img_height - $hauteur_caractere) / 2; //calcule la position Y du texte
if ($valeur === -1){
imagestring ($im, $taille_texte, $posX_str_pourcent, $posY_str_pourcent, $str_pourcent, imagecolorallocate($im, $color_txt[0], $color_txt[1], $color_txt[2]));
} else {
//bool imagestring  ( resource $image  , int $font  , int $x  , int $y  , string $string  , int $color  )
imagestring ($im, $taille_texte, $posX_str_pourcent, $posY_str_pourcent, $str_pourcent. "%", imagecolorallocate($im, $color_txt[0], $color_txt[1], $color_txt[2]));
}
// Création du PNG
return imagepng ($im, $nom_fichier, 0, NULL);
}
?>

//----- à mettre dans vos script pour appeler la fonction
<?php
//inclure la fonction
include("img.progressbar.php");

//pour générer une image (c'est un exemple)
générer_progressbar(300, 20, array("231", "231", "231"), array("221", "105", "0"), array("210", "169", "0"), array("48", "48", "57"), 3, 52, 100, 2, "./test.png");

//pour afficher l'image (en fait il suffit de placer une balise image classique)
echo "<img src=\"./test.png\" border=\"0\" alt=\"Impossible d'afficher l'image\" /><br>\n";
?>

Le fichier test.png doit être générer par le fichier img.progressbar.php, donc tout est là

Commentaire de lefter le 16/05/2009 09:27:45

Il ne manque que les paramètres de création de l'image elle-même.

Commentaire de Tioneb le 16/05/2009 12:51:16

LEFTHER: Que veux-tu dire par "Il ne manque que les paramètres de création de l'image elle-même." ? Tu veux dire de pouvoir choisir le format de l'image comme du jpg ou gif? Si c'est le cas, ce n'est pas bien compliqué de l'intégrer. Mais faut savoir que si on génère un jpg, on risque d'avoir de la perte de qualité, et je crois, une image plus grosse (enfin pour cette utilisation).

Commentaire de simonviei le 18/05/2009 07:04:19

On ne met pas d'accent dans la déclaration de fonction.

Commentaire de marcelolipi le 18/05/2009 12:38:35

salut Tioneb

merci pour ta source .Elle me serrait particulierrement  utile.mais il me reste un souci .j'aimerais que les internautes aient l'impression de voir un progres effectif ($valeur doit progresser dynamiquement).
j'aimerais savoir si quelqu'un a une possibilité

Commentaire de Tioneb le 18/05/2009 14:07:31

Pour faire ce que tu demande, il y a d'autres sources sur ce site (les barres de progression ne seront pas au format image mais en code html et javascript). D'ailleurs, dans la présentation de la source, je dis bien qu'elle est plutot destinée aux choses de ne changent pas rapidement (voir même lentement). Mais rien ne t'empêche de faire un système qui réactualise la page tout les x secondes, avec régénération de l'image (régénérer un progressbar avec le même nom de fichier, va écraser l'ancien). Peut-être que c'est également possible avec l'AJAX (mais là je ne connais pas bien cette technologie).

Sinon, si tu veux vraiment faire un mouvement fluide, tu devrais peut-être te pencher sur un objet flash.

Commentaire de marcelolipi le 18/05/2009 14:33:28

En fait je regenere la page toutes les x secondes avec header('Refresh: X ; url=mapage.php');<br/>
chaque fois un nouveau fichier est creer en écrasant le précédent (avec $valeur differente de la précédente.)
mais j'ai l'impression que la premiere image est gardé en mémoire et que le script ne charge plus les images suivantes.<br/><br/>
J'ai don essayé d'utiliser  header("Cache-Control: no-cache, must-revalidate"); et header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); pour le cache mais aucun changement.<br/><br/>

je pense que je dois orienter ma recherche vers un autre sens du genre :< br/><a href='http://www.phpcs.com/forum/sujet-EXECUTER-SCRIPT-APRES-CERTAIN-DELAI_1314235.aspx'>EXECUTER-SCRIPT-APRES-CERTAIN-DELAI</a> et apres je pourrais resoudre ce problème

Commentaire de gr43 le 02/06/2009 14:33:45

Salut
@marcelolipi => si tu change le nom de l'image à chaque fois, çà devrait le faire.

Commentaire de tuckleberry le 08/07/2009 17:38:57

Ne serait-il pas plus judicieux de remplacer cette boucle
for ($i = 0; $i < $pos_pourcent; $i++)
imageline($im, $i, 0, $i, $img_height, $color_face);
}

par un simple :
imagefilledrectangle ( $im, 0, 0, $pos_pourcent-1, $img_height, $color_face )
?

Commentaire de marcelolipi le 08/07/2009 18:47:11

salut tuckleberry

s-t-p  argumente un peu tes écrits

quel en serrait la différence  . SOIT plus explicatif

Commentaire de tuckleberry le 09/07/2009 11:32:41

Ça me paraît pourtant évident.
La boucle dessine un ensemble de lignes côte à côte pour remplir une zone rectangulaire, alors qu'il existe déjà une commande graphique pour dessiner un rectangle plein.
Donc :
1) c'est plus rapide parce que c'est une commande graphique intégrée
2) c'est plus lisible et on comprends tout de suite ce qui se dessine en lisant le code

Commentaire de toutoos le 14/08/2009 23:26:48

Moi je trouve le script assez bien. Mais il est possible de le faire en js avec une combinaison de la balise <div>

De plus avec le procédé que j'utilise on peu faire un rapport avec le temps et on peu donc faire évoluer la barre de progression en direct sur l'écran sans rechargement de la page ou de l'image.

La méthode est même plus légère et plus simple d'utilisation. et en gardant ton principe d'afficher le pourcentage en y ajoutant un petit Div de fond affichant le temps et en faisant varier la barre on a le possibilité de garder un texte visible. Enfin pour les personnes intéressée vous pouvez me MP et je vous prépare une petite source.

Commentaire de gilbert1995 le 30/09/2011 03:36:01 5/10

Modification considérable du script !!!

Crée un fichier X.php

mettre ce code :

<?
function html2rgb($color)
{
    if ($color[0] == '#')
        $color = substr($color, 1);

    if (strlen($color) == 6)
        list($r, $g, $b) = array($color[0].$color[1],
                                 $color[2].$color[3],
                                 $color[4].$color[5]);
    elseif (strlen($color) == 3)
        list($r, $g, $b) = array($color[0].$color[0], $color[1].$color[1], $color[2].$color[2]);
    else
        return false;

    $r = hexdec($r); $g = hexdec($g); $b = hexdec($b);

    return array($r, $g, $b);
}

$img_width = $_GET["img_width"];
$img_height = $_GET["img_height"];
$color_txt = html2rgb($_GET["color_txt"]);
$color_face = html2rgb($_GET["color_face"]);
$color_border = html2rgb($_GET["color_border"]);
$color_backgrnd = html2rgb($_GET["color_backgrnd"]);
$taille_texte = $_GET["taille_texte"];
$valeur = $_GET["valeur"];
$valeur_max = $_GET["valeur_max"];
$arrondi = $_GET["arrondi"];

switch ($taille_texte){ //va permettre de centrer le texte en fonction de la taille du texte choisie
case 1:
$largeur_caractere = 5;
$hauteur_caractere = 7;
break;
case 2:
$largeur_caractere = 6;
$hauteur_caractere = 10;
break;
case 3:
$largeur_caractere = 7;
$hauteur_caractere = 12;
break;
case 4:
$largeur_caractere = 8;
$hauteur_caractere = 13;
break;
case 5:
$largeur_caractere = 9;
$hauteur_caractere = 14;
break;
}
if ($valeur === -1){
$pourcent = 0;
$str_pourcent = "Aucun parametre !";
} else {
$pourcent = $valeur * 100 / $valeur_max; //calcul du vrai pourcentage (sur 100)
$str_pourcent = number_format($pourcent, $arrondi, ',', ' '); //met en forme le pourcentage
}

$len_pourcent = strlen($str_pourcent) + 1; //on récupère le nombre de caractères tu texte qui sera affiché (le +1 c'est parce qu'on ajoutera le sigle %)
$pos_pourcent = $pourcent * $img_width / 100; //calcul de la partie à colorer en fonction de la taille de l'image
$im = @imagecreate($img_width, $img_height) or die ("Impossible d'initialiser la librairie GD");
// Fond et couleur de texte
imagecolorallocate($im, $color_backgrnd[0], $color_backgrnd[1], $color_backgrnd[2]); // background
$color_border = imagecolorallocate($im, $color_border[0], $color_border[1], $color_border[2]); //conversion des couleurs
$color_face = imagecolorallocate($im, $color_face[0], $color_face[1], $color_face[2]); //conversion des couleurs

for ($i = 0; $i < $pos_pourcent; $i++){ //boucle pour colorer la partie correspondant au pourcentage
imageline($im, $i, 0, $i, $img_height, $color_face);
}

imageline($im, 0, 0, $img_width, 0, $color_border); // Bordure horizontale supérieure
imageline($im, 0, 0, 0, $img_height, $color_border); // Bordure verticale de gauche
imageline($im, 0, $img_height-1, $img_width-1, $img_height-1, $color_border); // Bordure horizontale inférieure
imageline($im, $img_width-1, 0, $img_width-1, $img_height-1, $color_border); // Bordure verticale de droite
// Texte
$posX_str_pourcent = ($img_width - $len_pourcent * $largeur_caractere) / 2; //calcule la position X du texte
$posY_str_pourcent = ($img_height - $hauteur_caractere) / 2; //calcule la position Y du texte
if ($valeur === -1){
imagestring ($im, $taille_texte, $posX_str_pourcent, $posY_str_pourcent, $str_pourcent, imagecolorallocate($im, $color_txt[0], $color_txt[1], $color_txt[2]));
} else {
//bool imagestring  ( resource $image  , int $font  , int $x  , int $y  , string $string  , int $color  )
imagestring ($im, $taille_texte, $posX_str_pourcent, $posY_str_pourcent, $str_pourcent. "%", imagecolorallocate($im, $color_txt[0], $color_txt[1], $color_txt[2]));
}
// Création du PNG
header('Content-Type: image/png');
imagepng ($im);
imagedestroy($im);?>

Pour l'appler on fait comme suit:
<img src='X.php?img_width=300&img_height=20&color_txt=E7E7E7&color_face=DD6900&color_border=D2A900&color_backgrnd=303039&taille_texte=3&valeur=52&valeur_max=100&arrondi=2' />

2 gros avantage
     1. Utilisation de code de couleur html au lieux de RGB
     2. Pas de fichier crée doc une réduction considérable des fichier sur le serveur

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

PB d'envoi d'images dynamiques !!! [ par MangaII ] Coucou a tous !Bon, voilà mon soucis !Qd on créé un image dynamique en php, avec imagecreate ..., on fini tjs par l'envoyer au navigateur avec imagejp Créer une image dynamique [ par stratege78 ] Salut à tous,Débutant en phpBB et tout ce qui y touche de près ou de loin, je ne connais pas trop les possibilités que nous offre phpbb. Un membre m'a Génération dynamique d'image gif [ par spardo ] Bonjour Voil&#224;, je dois trouver un script qui puisse g&#233;n&#233;rer des images param&#232;trables comme changer la couleur, la police, la tail GEstion dynamique vidéo [ par zzzzzz ] Bonjour, Alors voila j'aimerai pouvoir laisser libre access &#224; mes membres pour qu'ils puissent ajouter leurs propre vid&#233;os, seulement voi transparence des Images dynamique... [ par kroland ] BONSOIR A TOUS Voil&#224; je suis en train de cr&#233;&#233; un service de compteur graphique (http://www.chezdavid.tk) (qui utilise le proc&#233;d&# Insertion d'image dynamique [ par Licorne974 ] je souhaiterais savoir si il y a un petit script php par là !qui permettrais dans la saisie d'un formulaire d'insérer 2 photos qui se trouve sur mon d Recadrage dynamique [ par wacha ] Bonjour,Je suis a la recherche d'une fonction permettant de recadrer dynamiquement une image.Je m'explique, lorsqu'une personne uploadera une image de image dynamique [ par Matildaa ] Bonjour, J'aimerais pouvoir créer une image dynamique: la grandeur dépendra du pourcentage de post par exemple, Si c'est le posteur qui a le plus de p Image Dynamique + Font + Dégradé [ par Marshall_Mathers ] Bonjour à tous :)Je suis assez novice en création d'image dynamique...Je souhaiterai pouvoir générer un *.png (comme ci-dessous) à partir d'une variab Compte à rebours sur image dynamique [ par Piouxel ] Je sais que ça fait complètement jacky ou mémère, mais je veux savoir comment ça marche. Donc pour en venir au sujet : comment faire ces petits compt


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 : 0,406 sec (3)

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