PHP/Programmazione/Immagini: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
m Update syntaxhighlight tags - remove use of deprecated <source> tags
Riga 15:
== 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:
<sourcesyntaxhighlight lang=php>imagecreatetruecolor(h, w)</sourcesyntaxhighlight>
che crea in memoria una nuova immagine di altezza <code>h</code> e larghezza <code>w</code> (in pixel) e restituisce un riferimento all'immagine appena creata. Esiste anche una funzione, seppur non raccomandata, che crea un'immagine con una minore ampiezza di colori: <code>imagecreate</code>, che ha lo stesso comportamento di <code>imagecreatetruecolor</code>.
 
Per caricare in memoria un'immagine salvata su disco usiamo invece le funzioni
<sourcesyntaxhighlight lang=php>imagecreatefrom<tipo> (percorso)</sourcesyntaxhighlight>
che carica un'immagine salvata sul server del tipo specificato. Ad esempio:
$img = imagecreatefrompng('immagine.png');
 
Esiste inoltre una funzione
<sourcesyntaxhighlight lang=php>imagecreatefromstring (testo)</sourcesyntaxhighlight>
che crea un'immagine contenente il testo specificato come argomento
 
Riga 31:
== Lavorare con i colori ==
Per allocare un colore si usa la funzione
<sourcesyntaxhighlight lang=php>imagecolorallocate(immagine,r,g,b)</sourcesyntaxhighlight>
che restituisce un riferimento al colore date le sue componenti [[w:RGB|RGB]].
 
È possibile, se si sta lavorando con formati come il PNG (che supporta la trasparenza), allocare colori trasparenti con la funzione <code>imagecolortransparent</code>
<sourcesyntaxhighlight lang=php>imagecolortransparent(immagine,colore)</sourcesyntaxhighlight>
dove <code>colore</code> è una risorsa colore valida creata con <code>imagecolorallocate</code>; è anche possibile allocare colori con una determinata trasparenza, compresa tra 0 (opaco) e 127 (completamente trasparente) con la funzione
<sourcesyntaxhighlight lang=php>imagecolorallocatealpha(immagine,r,g,b,trasparenza)</sourcesyntaxhighlight>
Si noti che il primo colore allocato verrà automaticamente usato come colore di sfondo dell'immagine.
 
Riga 46:
== Disegnare punti, linee e forme ==
Per disegnare un pixel usiamo la funzione
<sourcesyntaxhighlight lang=php>imagesetpixel(immagine, x, y, colore)</sourcesyntaxhighlight>
dove <code>immagine</code> è una risorsa di immagine , <code>x</code> e <code>y</code> sono le coordinate del punto da disegnare e <code>colore</code> è una risorsa che identifica un colore allocato in precedenza.
<sourcesyntaxhighlight lang=php>imageline(immagine, x1, y1, x2, y2, colore)</sourcesyntaxhighlight>
Traccia una linea dal punto x1, y1 al punto x2, y2
<sourcesyntaxhighlight lang=php>imagerectangle(immagine, x1, y1, x2, y2, colore)</sourcesyntaxhighlight>
Disegna un rettangolo che ha per diagonale la linea da x1, y1 a x2, y2.
<sourcesyntaxhighlight lang=php>imageellipse(immagine, x, y, w, h, colore)</sourcesyntaxhighlight>
Disegna una ellisse di centro x, y di altezza h e larghezza w. Se h è uguale a w, allora si otterrà un cerchio.
<sourcesyntaxhighlight lang=php>imagearc(immagine, x, y, w, h, ang1, ang2, colore)</sourcesyntaxhighlight>
Funzione come <code>imageellipse</code> ma disegna solo l'arco di ellisse compreso tra gli angoli (in gradi) ang1 e ang2, I gradi sono contati in senso orario a partire dalle ore 3.
 
Riga 62:
Una delle più utilizzate è sicuramente <code>imagecopyresized</code>, che permette di copiare una porzione rettangolare di un'immagine ed incollarla in un'altra (con possibilità di ridimensionarla durante il processo). Es:
 
<sourcesyntaxhighlight lang=php>imagecopyresized(dst_image, src_image, dst_x, dst_y, src_x,
src_y, dst_w, dst_h, src_w, src_h);</sourcesyntaxhighlight>
dove:
*<code>dst_image</code> è l'immagine dove verrà incollata
Riga 78:
==Stampare l'output==
Prima di stampare l'output del risultato ottenuto è necessario indicare, usando la funzione <code>header</code>, il content-type (tipo del contenuto, che per default è impostato a text/html); quindi:
<sourcesyntaxhighlight lang=php>header("Content-type: image/<tipo>");</sourcesyntaxhighlight>
dove <code>tipo</code> sta per "png", "jpeg" o "gif" a seconda del formato in cui si vuole visualizzare l'immagine.
 
Riga 89:
== Esempio ==
Per visualizzare un quadrato rosso in un nero:
<sourcesyntaxhighlight lang=php>
$image = imagecreatetruecolor(100, 100);
$color = imagecolorallocate($image, 255, 0, 0);
Riga 96:
imagepng($image);
imagedestroy($image);
</syntaxhighlight>
</source>
 
[[Categoria:PHP|Immagini]]