FEB
25
PHP et GD courbes bezier multi-layers
25.02.2007 | | Auteur : Ayashi | Catégorie : Programmation


Il est possible de créer des images complexes en utilisant la librairie GD 2.0 disponible dans PHP. La génération d'images à la volée permet de facilement mettre en valeur des données contenues dans une base de données. De nombreux modules gratuits permettant de créer des graphiques sont disponibles sur internet ( JPGraph par exemple ). En utilisant les fonctionnalitées de GD comme la transparence ou les images truecolors il est possible d'obtenir un rendus exceptionnel en JPG,GIF ou PNG.

En ajoutant une dimension mathématique comme les courbes de bézier, il est encore possible d'améliorer la représentation graphique. L'exemple suivant est un script qui accepte en entrée un tableau à deux dimensions, la première contient les données, la deuxième contient un TimeStamp :

 Value 
1
5
3
14
-5
6
 TimeStamp  1172367147 1172323947 1172280747 1172237547 1172194347 1172151147
On définit quelques valeurs concernant la taille de l'image ( $ImageX, $ImageY ), le titre du graphique ( $Title ), l'unité de mesure des valeurs ( $Unit ). On crée ensuite les images au format truecolor ce qui permet d'avoir une palette illimitée : $BackGround contiendra le fond, le quadrillage et les labels. $ForeGround contiendra le graphique. A noté l'utilisation de la fonction imagecolortransparent qui permet de définir une couleur comme transparente : nous utilisons le blanc ( #FFFFFF ). Afin de rendre le graphique plus doux, on utilise la formule de Bézier qui permet de créer des courbes paramétriques. Cette formule du 3em degré nécessite de connaitre le point de départ ( $Starti ), celui d'arrivée ( $Endi ) ainsi que deux vecteurs ( $Vecij ). Pour terminer nous faisons appel à la fonction imagecopymerge qui permet d'appliquer la transparence en applatissant les deux couches $BackGround et $ForeGround. Le coefficient de transparence est de 20. Pour voir ce script en action, cliquez ici!, pour le télécharger, cliquez ici.
Tags : php, gd, layer, bezier | Digg!
Commentaires  | Ajouter un commentaire
Ayashi
30.08.07 / 16:20
Oui effectivement, sans le fichier de font en local ça ne marche pas. Le script tournait sur un systeme windows avant et cela ne posait pas de probleme... J'ai oublie de verifier en deplacant sur ce serveur linux.. Merci!
Jihane
18.06.07 / 16:15
C Bon j'ai trouvé...Il suffit d'un petit changement: header("Content-Type: image/png");imagePNG($BackGround,"tmp.png");echo "";au lieu de
Jihane
18.06.07 / 15:49
Hi!Je trouve que ton code est propre, très interessant si toute fois ça marche...Je ne sais si tu t'en ai rendu compte mais ton script ne marche pas, j'ai trouvé un premier problème et la solution pour éliminer les erreurs dues au imagettftext.Il faudrait placer le fichier de font directement dans ton espace web et spécifie le chemin avec l'extension. Par exemple au lieu de "verdana" il faudrait mettre '../monrep/verdana.ttf' élimine les erreurs image mais le scipt ne marche toujours pas et ça met le même charabia que pour ton "script en action" je pense que ça vient de la config... à  vérifier!sinon jolie script ;)
Rechercher sur internet  ?  | Rechercher!
Trackback
Utilisez le lien http://www.sunyday.net/trackback-php-gd-courbe-bezier-multi-layers pour faire un trackback vers cette article depuis votre site web. Les trackbacks sont soumis à une approbation mutuelle et susceptibles d'être supprimés si jugés indésirables.
Retrieve RSS feed. Get notified by eMail. Meteo Parser.
Computing widgets...
Jean-Damien POGOLOTTI© 2k6-2k7 | Design // Code

Qui suis-je?

Touche à tout restant bouche bée devant la complexité et la cohérence de ce monde je m'évertue à essayer d'en comprendre les rouages. En passant par la météorologie, la physique ou bien l'informatique, tout est une raison d'apprendre!
Comment les gens arrivent-il ici?
 line  regexp  le  html  directory  map  anomalie  resize  d%27ozone  lldp  conversion  javascript  explication  coordonn%C3%A9es  php  dans  une  couche  metar  web  la  fading  synop  fade  ntfs  magn%C3%A9tique  adresse  +  mercator  authentification  script  longitude  trou  snmp  module  find  du  google  ldap  PAGE  en  url  pour  image  active  regex  ad  SUR  CODE  ajax  browser  gd  champ  sunyday  command  gps  photovoltaique  protocole  latitude  les  des  avec  cli  nuls  convertisseur  terrestre  de  et  convertir  un  

Sunyday.net