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

Code

 > 

Graphique

 > BARRES PARAMÉTRABLES EN DÉGRADÉ DE COULEUR ET AVEC TEXTE DANS LA BARRE (PAR EXEMPLE POUR LES RÉSULTATS D'UN SONDAGE)

BARRES PARAMÉTRABLES EN DÉGRADÉ DE COULEUR ET AVEC TEXTE DANS LA BARRE (PAR EXEMPLE POUR LES RÉSULTATS D'UN SONDAGE)


 Information sur la source

 Description

Une petite fonction de création de barres de couleur (rvb) avec un affichage en dégradé.

Je me suis très fortement inspiré de la très bonne source http://www.phpcs.com/codes/DEGRADE_23470.aspx
sauf que j'ai remplacé l'appel de la page (avec des passages de variables en GET moyennement sécurisé, hum) par une fonction appelable depuis votre code php, avec par exemple en paramètres, les valeurs résultats d'un sondage, et ajouter la possibilité de mettre un texte en surimpression de l'image.

Seule contrainte: il faut activer la librairie GD2 de PHP. (facile à faire sous WAMP ou LAMP)



Source

  • function CreateImageFade(
  • // bar length and height for 100% with a reduction ratio (for example, $percent result of the poll)
  • $base_x=550, $ratio_x=100, $base_y=25, $ratio_y=100,
  • // color 1 for fading source
  • $red1, $green1, $blue1,
  • // color 2 for fading target
  • $red2, $green2, $blue2,
  • // 1 for horizontal fade (direction x), 1 for vertical fade (direction y), 1 for diagonal fade (direction xy)
  • $fade_direction,
  • // text content and size/position parameters
  • $text, $text_offset_x, $text_offset_y, $text_size=2,
  • // image file (format png) to be saved as result
  • $path_to_root_file_img, $debug=false) {
  • // -----------------------------------------------
  • // SOURCES & documentation
  • // http://www.phpcs.com/codes/DEGRADE_23470.aspx
  • // File.extension
  • $file_img_bar = $path_to_root_file_img ;
  • // Init: vérif des min/max des couleurs rvb et ratio
  • $red1 = (($red1 <= 255) && ($red1 >= 0))? $red1 : 255 ;
  • $green1 = (($green1 <= 255) && ($green1 >= 0))? $green1 : 255 ;
  • $blue1 = (($blue1 <= 255) && ($blue1 >= 0))? $blue1 : 255 ;
  • $red2 = (($red2 <= 255) && ($red2 >= 0))? $red2 : 23 ;
  • $green2 = (($green2 <= 255) && ($green2 >= 0))? $green2 : 23 ;
  • $blue2 = (($blue2 <= 255) && ($blue2 >= 0))? $blue2 : 230 ;
  • $ratio_x = (($ratio_x > 0) && ($ratio_x <= 100))? $ratio_x : 5 ;
  • $ratio_y = (($ratio_y > 0) && ($ratio_y <= 100))? $ratio_y : 5 ;
  • $c1 = array('r' => $red1, 'v' => $green1, 'b' => $blue1);
  • $c2 = array('r' => $red2, 'v' => $green2, 'b' => $blue2);
  • $bar_x = $ratio_x * $base_x / 100 ;
  • $bar_y = $ratio_y * $base_y / 100 ;
  • switch ($fade_direction) {
  • case 1 : $t = $bar_x; break;
  • case 2 : $t = $bar_y; break;
  • case 3 : $t = $bar_x + $bar_y; break;
  • default: $t = $bar_x; break;
  • }
  • // DEBUG
  • if ($debug) {
  • echo "<br/>DEBUG: long_x = $bar_x, long_y = $bar_y";
  • }
  • // Création de l'image
  • $img = imagecreatetruecolor($bar_x, $bar_y);
  • $white = imagecolorallocate($img, 255, 255, 255); // couleur du fond
  • // Dégradé : on dessine une ligne verticale, horizontale ou diagonale pour chaque pixel entre 0 et $t
  • for ($i=0; $i < $t ; $i++) {
  • $r = $c1['r'] + $i * ($c2['r'] - $c1['r']) / $t;
  • $v = $c1['v'] + $i * ($c2['v'] - $c1['v']) / $t;
  • $b = $c1['b'] + $i * ($c2['b'] - $c1['b']) / $t;
  • $c = imagecolorallocate($img, $r, $v, $b);
  • switch ($fade_direction) {
  • case 1 : imageline($img, $i, 0, $i, $bar_y, $c); break;
  • case 2 : imageline($img, 0, $i, $bar_x, $i, $c); break;
  • case 3 : imageline($img, max(0,($i-$bar_y)), min($i,$bar_y), min($i,$bar_x), max(0,($i-$bar_x)), $c); break;
  • }
  • }
  • // Ajout du texte
  • $white = imagecolorallocate($img, 255, 255, 255); // couleur du texte affiché sur l'image
  • imagestring($img, $text_size, $bar_x - $text_offset_x , $bar_y - $text_offset_y , $text , $white);
  • // Sauvegarde de l'image au format png
  • imagepng($img, $file_img_bar);
  • imagedestroy($img);
  • return $file_img_bar;
  • } /* fin de CreateImageFade */
function CreateImageFade(

// bar length and height for 100% with a reduction ratio (for example, $percent result of the poll)
$base_x=550, $ratio_x=100, $base_y=25, $ratio_y=100,

// color 1 for fading source
$red1, $green1, $blue1,

// color 2 for fading target
$red2, $green2, $blue2,									

// 1 for horizontal fade (direction x), 1 for vertical fade (direction y), 1 for diagonal fade (direction xy)
$fade_direction,										

// text content and size/position parameters
$text, $text_offset_x, $text_offset_y, $text_size=2,

// image file (format png) to be saved as result
$path_to_root_file_img, $debug=false) {
// -----------------------------------------------
// SOURCES & documentation
// http://www.phpcs.com/codes/DEGRADE_23470.aspx

	// File.extension
	$file_img_bar	= $path_to_root_file_img ;

	// Init: vérif des min/max des couleurs rvb et ratio
	$red1	= (($red1 <= 255) && ($red1 >= 0))? $red1	: 255 ;
	$green1	= (($green1 <= 255) && ($green1 >= 0))?	$green1	: 255 ;
	$blue1	= (($blue1 <= 255) && ($blue1 >= 0))? $blue1	: 255 ;

	$red2	= (($red2 <= 255) && ($red2 >= 0))?	$red2	: 23 ;
	$green2	= (($green2 <= 255) && ($green2 >= 0))?	$green2	: 23 ;
	$blue2	= (($blue2 <= 255) && ($blue2 >= 0))?	$blue2	: 230 ;
	
	$ratio_x = (($ratio_x > 0) && ($ratio_x <= 100))? $ratio_x : 5 ;
	$ratio_y = (($ratio_y > 0) && ($ratio_y <= 100))? $ratio_y : 5 ;
	
		
	$c1 = array('r' => $red1, 'v' => $green1, 'b' => $blue1);
	$c2 = array('r' => $red2, 'v' => $green2, 'b' => $blue2);

	$bar_x	= $ratio_x * $base_x / 100 ;
	$bar_y	= $ratio_y * $base_y / 100 ;

	 switch ($fade_direction)  {
		 case 1 : $t = $bar_x; 			break;
		 case 2 : $t = $bar_y;			break;
		 case 3 : $t = $bar_x + $bar_y;         break;
		 default: $t = $bar_x; 			break;
	 }
	 
	 // DEBUG
	 if ($debug) {
		echo "<br/>DEBUG: long_x = $bar_x, long_y = $bar_y";
	 }
	 
	// Création de l'image
	$img	= imagecreatetruecolor($bar_x, $bar_y);
	$white	= imagecolorallocate($img, 255, 255, 255);		// couleur du fond
 
	// Dégradé : on dessine une ligne verticale, horizontale ou diagonale pour chaque pixel entre 0 et $t
	for ($i=0; $i < $t ; $i++)  {
	
		$r = $c1['r'] + $i * ($c2['r'] - $c1['r']) / $t;
		$v = $c1['v'] + $i * ($c2['v'] - $c1['v']) / $t;
		$b = $c1['b'] + $i * ($c2['b'] - $c1['b']) / $t;
		
		$c = imagecolorallocate($img, $r, $v, $b);
		
		switch ($fade_direction) {
			case 1 : imageline($img, $i, 0, $i, $bar_y, $c); break;
			case 2 : imageline($img, 0, $i, $bar_x, $i, $c); break;
			case 3 : imageline($img, max(0,($i-$bar_y)), min($i,$bar_y), min($i,$bar_x), max(0,($i-$bar_x)), $c); break;
		}
	}

	// Ajout du texte
	$white	= imagecolorallocate($img, 255, 255, 255);			// couleur du texte affiché sur l'image
	imagestring($img, $text_size,  $bar_x - $text_offset_x , $bar_y - $text_offset_y , $text , $white);
	
	 // Sauvegarde de l'image au format png
	 imagepng($img, $file_img_bar);
	 imagedestroy($img);
 
 return $file_img_bar;
 
} /* fin de CreateImageFade */

 Conclusion

Exemple d'appel de la fonction depuis votre code php:

$text="50% de oui";
$percent=50;
$img = CreateImageFade($base_x=550, $ratio_x=$percent, $base_y=25, $ratio_y=100, $red1=230, $green1=230, $blue1=255, $red2=0, $green2=0, $blue2=255, $fade_direction=3, $text, $offset_x= 40, $offset_y=20, $text_size=2, $file_img, $debug=false);

echo '<br/><img src="'. $img . '"/></br>';


 Sources du même auteur

Source avec Zip [PHP5.2] CLASSE PDO
TESTEUR DE REGEX

 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

Source avec Zip Source avec une capture CAMEMBERT BD par dardelphi
Source avec une capture AMÉLIORATION : CAMEMBERT par asphator
Source avec une capture AGENDA GRAPHIQUE SIMPLE (DÉBUTANT) À INTÉGRER par NicomakM
Source avec une capture CLASSE GÉNÉRATEUR DE CODES BARRES 2D DATAMATRIX par TorTukiTu
Source avec Zip SONDAGE + STATISTIQUES GRAPHIQUES DYNAMIQUES par malalam

Commentaires et avis

Commentaire de hornetbzz le 03/01/2010 00:08:04

Rien de transcendant mais la fonction peut être bien pratique et constituer une base de travail directement utilisable pour les débutants - et les autres aussi d'ailleurs :-)

Parmi les améliorations possibles, je citerai par exemple une interface admin pour ajuster les couleurs et dimensions des barres selon votre site, sans tâtonner manuellement dans l'ajustement des paramètres.

Commentaire de Neo_Ryu le 11/01/2010 20:54:05

D'accord avec toi hornetbzz pour une interface admin. Je vais suivre la source pour voir comment elle évoluera ^^

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Graphique barre a partir de mysql [ par mrfox ] Bonsoir, je souhaiterais r&#233;aliser un graphique a baton a partir de donn&#233;es extraitent d'une bdd sqlje sais faire les calcul de pourcentage, generer un graphique grace au resultat d'un sondage [ par agnes05 ] Je dois generer a partir des resultats obtenu par un formulaire des graphiques mais je ne sais pas trop comment m'y prendre.merci d'avance creation de graphique [ par agnes05 ] je narrive pas a faire apparaitre une photos creer avec gd... et mon code n'a pas d'erreur. je crois que le probleme vient de la facon dont je l'appel Graphique dynamique librairie Artichow [ par aforpien ] Bonjour à tous, J'essaie de créer un graphique dynamique pour afficher le nombre de requetes par secondes sur une base MYSQL. J'ai d'abord cherché du réalisation d'une carte graphique de Nouakchott [ par bebeha ] bonjour tout le monde, je veux réaliser une carte geographique de la capitale Nouakchott (mauritanie) en montrant les lycée en point rouge, et chaque Je donne un super kit graphique :-) en échange d'une solution pour installer ce kit graphique (thème: "RaisingSun" de chez kit-gaming.org) sur le logiciel Wamp Serveur [ par Rolls512 ] Bonjour, J'ai acheter un kit graphique sur le site kit-gaming.org (thème RaisingSun) compatible "WebSpell" mais seulement impossible de l'installer, Graphique [ par eva4 ] Bonjour, Je souhaiterais intégrer un graphique sur une de mes pages. J'ai des valeurs, $a, $b, $c, $d, $e, $f qui sont des nombres. Je voudrais réa Afficher statistiqu graphique a laide des variables en php [ par smile88 ] Bonjour, s.v.p comment afficher les statistiques en graphique a l'aide des variables qui se trouve dans la base de données en php en envoyant des requ lecture d'un code barre [ par totonyou2007 ] je cherche un application php que fait la lecteur d'un code barre par un lecteur de code barre Barre de progression [ par easynoob ] Bonsoir à tous, J'aurais besoin de faire une barre de progression pour un script exécuter en mode console! Si vous avez des idées ou des suggestions,


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