|
|
|
PHP et GD courbes bezier multi-layers
|
|
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.
|
|
|
|
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!
 |
Chargement en cours... |
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.
|