PHP/Programmazione/Immagini
Wikibooks, manuali e libri di testo liberi.
- Introduzione PHP/Introduzione
- Installazione e configurazione PHP/Installazione e configurazione
- Programmazione PHP/Programmazione
- Una pagina PHP PHP/Programmazione/Una pagina PHP
- echo PHP/Programmazione/echo
- Commenti PHP/Programmazione/Commenti
- Variabili PHP/Programmazione/Variabili
- Operatori PHP/Programmazione/Operatori
- Array PHP/Programmazione/Array
- Condizioni PHP/Programmazione/Condizioni
- Cicli PHP/Programmazione/Cicli
- Funzioni di base PHP/Programmazione/Funzioni di base
- Funzioni personalizzate PHP/Programmazione/Funzioni personalizzate
- Variabili globali PHP/Programmazione/Variabili globali
- $GLOBALS PHP/Programmazione/Variabili globali/$GLOBALS
- $_GET PHP/Programmazione/Variabili globali/$_GET
- $_POST PHP/Programmazione/Variabili globali/$_POST
- $_SESSION PHP/Programmazione/Variabili globali/$_SESSION
- $_COOKIE PHP/Programmazione/Variabili globali/$_COOKIE
- $_SERVER PHP/Programmazione/Variabili globali/$_SERVER
- File PHP/Programmazione/File
- Immagini PHP/Programmazione/Immagini
- Espressioni regolari PHP/Programmazione/Regexp
- Programmazione orientata agli oggetti PHP/Programmazione/OOP
- Programmazione avanzata con le classi PEAR PHP/PEAR
- PHP e i database PHP/Database
- Funzioni PHP per l'accesso ai database
- Database e object oriented PHP/Dboop
- PHP Design Pattern PHP/PHP Design Pattern
- Smarty PHP/Smarty
- Sicurezza delle applicazioni web PHP/Sicurezza
- PHP CLI: Command Line Interpreter PHP/Cli
- PHP GTK2: applicazioni desktop in PHP PHP/Gtk
- Wikibook credits
Tra le funzionalità del PHP esiste anche quella di creare dinamicamente immagini e restituire un output non quindi di testo (come può essere quello dell'HTML) ma di immagine.
Per fare ciò è possibile usare le librerie GD, delle librerie open-source sviluppate dalla Boutell. È possibile avere maggiori informazioni sull'argomento sul sito ufficiale.
Prima di procedere quindi alla creazione di immagini con PHP, si verifichi ovviamente di avere installato le librerie GD sul proprio computer.
Per creare quindi una nuova immagine in PHP dovremmo quindi:
- caricare in memoria una nuova immagina o una copia di un'immagine esistente
- caricare (si dice allocare) i colori usati per le eventuali modifiche dell'immagine
- eseguire eventuali modifiche (creare linee, punti, riempimenti, aggiungere testo...)
- restituire come output un'immagine dopo aver correttamente impostato nell'header il tipo di file restituito
Indice |
[modifica] Creare una nuova immagine
Per la creazione di una nuova immagine PHP mette a disposizione diverse funzioni. Per creare un'immagine ex-novo usiamo la funzione:
imagecreatetruecolor(h, w)
che crea in memoria una nuova immagine di altezza h e larghezza w (in pixel) e restituisce un riferimento all'immagine appena creata.
Per caricare in memoria un'immagine salvata su disco usiamo invece le funzioni
imagecreatefrom<tipo> (percorso)
che carica un'immagine salvata sul server del tipo specificato. Ad esempio:
$img = imagecreatefrompng('immagine.png');
Esiste inoltre una funzione
imagecreatefromstring (testo)
che crea un'immagine contenente il testo specificato come argomento
Nei casi avvenga un errore, le funzioni restituiscono false.
[modifica] Lavorare con i colori
Per allocare un colore si usa la funzione
imagecolorallocate(r,g,b)
che restituisce un riferimento al colore date le sue componenti RGB.
È possibile, se si sta lavorando con formati come il PNG (che supporta la trasparenza), allocare colori con una determinata trasparenza, compresa tra 0 (opaco) e 127 (completamente trasparente) con la funzione
imagecolorallocatealpha(r,g,b,trasparenza)
Si noti che il primo colore allocato verrà automaticamente usato come colore di sfondo dell'immagine.
Creata la nuova immagine e allocati i colori, è ora possibile lavorarci sopra in due modi:
- disegnando nuovi pixel (creando linee, forme, ecc...)
- lavorando sui pixel già esistenti (serve se l'immagine è stata caricata da un file) tagliandone parti, ricolorandola o ridimensionandola)
[modifica] Disegnare punti, linee e forme
Per disegnare un pixel usiamo la funzione
imagesetpixel(immagine, x, y, colore)
dove immagine è una risorsa di immagine , x e y sono le coordinate del punto da disegnare e colore è una risorsa che identifica un colore allocato in precedenza.
imageline(immagine, x1, y1, x2, y2, colore)
Traccia una linea dal punto x1, y1 al punto x2, y2
imagerectangle(immagine, x1, y1, x2, y2, colore)
Disegna un rettangolo che ha per diagonale la linea da x1, y1 a x2, y2.
imageellipse(immagine, x, y, w, h, colore)
Disegna una ellisse di centro x, y di altezza h e larghezza w. Se h è uguale a w, allora si otterrà un cerchio.
imagearc(immagine, x, y, w, h, ang1, ang2, colore)
Funzione come imageellipse ma disegna solo l'arco di ellise compreso tra gli angoli (in gradi) ang1 e ang2, I gradi sono contati in senso orario a partire dalle ore 3.
[modifica] Lavorare sui pixel già esistenti
Per lavorare su un'immagine già disegnata in precedenza, ad esempio una foto, si hanno a disposizione molte funzioni

