PHP » Articoli » Grafica e Php
di: Claudio Garau 04 Dicembre 2008
In questa breve trattazione vedremo come sia possibile creare facilmente un comune grafico basato su griglie, barre e percentuali come nell'esempio riportato dall'immagine sottostante.
Figura 1: Grafico dinamico di esempio

Per far questo sarà sufficiente ricorrere a PHP, alle librerie GD ed in particolare alle numerosissime funzioni messe a disposizione da questo linguaggio per la gestione e la manipolazione delle immagini.
Al fine di descrivere una possibile procedura per la creazione dei grafici, verrà proposta una funzione in grado di generare un'immagine completa a partire dai valori contenuti all'interno di un array. Innanzitutto, sarà messo a disposizione l'intero codice che costituisce l'applicazione per poi descriverne i diversi passaggi, i commenti aiuteranno comunque a riconoscere le diverse funzionalità svolte all'interno del listato.
<?php # definizione della funzione e delle variabili function crea_grafico($array) { # controllo sulla presenza, sull'entità e sulla validità dell'array if (!@isset($array) || @empty($array) || @count($array) > 20) { # valore di ritorno in caso di array assente o non valido return FALSE; } # ricerca del valore massimo all'interno dell'array $valore_massimo = @max($array); # conversione dei valori dell'array in percentuali fatto 100 il valore massimo $nuovo_array = array(); foreach ($array as $val) { $nuovo_array[] = @intval($val / $valore_massimo * 100); } //creazione di un'immagine 450(larghezza) * 150(altezza) $immagine = @imagecreatetruecolor(450, 150); # definizione dei colori degli elementi del grafico (valori RGB esadecimali) # colore: antiquewhite $colore_di_sfondo = @imagecolorallocate($immagine, 250, 235, 215); # colore: lightslategray $colore_griglia = @imagecolorallocate($immagine, 119, 136, 153); # colore: olivedrab $colore_barre = @imagecolorallocate($immagine, 107, 142, 35); # colore: navy $colore_testo = @imagecolorallocate($immagine, 0, 0, 128); # riempimento dell'immagine con il colore di sfondo @imagefill($immagine, 0, 0, $colore_di_sfondo); # creazione della griglia # creazione delle linee orizzontali for ($i=1; $i<=10; $i++) { @imageline($immagine, 0, $i*10+40, 450, $i*10+40, $colore_griglia); } # creazione delle linee verticali $spazio = @intval(450 / @count($nuovo_array)); for ($i=1; $i<=@count($nuovo_array); $i++) { @imageline($immagine, $i*$spazio, 40, $i*$spazio, 150, $colore_griglia); } # disegno del grafico for ($i=0; $i<@count($nuovo_array); $i++) { $j = @intval($spazio/2) -1 + $spazio*$i; @imagefilledrectangle($immagine, $j, 150, $j+3, 150-$nuovo_array[$i], $colore_barre); @imagestringup($immagine, 2, $j-5, 150-$nuovo_array[$i]-10, $nuovo_array[$i].'%',$colore_testo); } # definizione del tipo di contenuto MIME @header("Content-type: image/png"); # restituzione in output dell'immagine @imagepng($immagine); #liberazione della memoria associata all'immagine @imagedestroy($immagine); } ?>
Il codice proposto può apparire un po' lungo ma non è di certo complesso, le funzioni utilizzate e in particolare quelle dedicate da PHP alle librerie GD sono invece numerose e meritano di essere descritte nel dettaglio.
Guida Yii FrameworkCome creare applicazioni Web in modo semplice e veloce con il... |
Guida Zend FrameworkDiventate professionisti dello sviluppo Web. Zend Framework è lo... |
Guida Applicazioni Facebook con PHPCome realizzare un'applicazione per Facebook. Dalle basi della... |
Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.
Iscriviti alla newsletter
|
|
Corso PHP per Webmaster11 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |