| Resizing di immagini in PHP con Wideimage |
| Programmazione & Co. |
| Sabato 11 Febbraio 2012 12:22 |
|
Ho già parlato più volte di come effettuare il resizing di una immagine in PHP durante l'upload. Però mi è stata suggerita quest'ottima libreria per manipolare e salvare immagini: Wideimage. Con questa libreria è posibile fare anche il resizing, il cropping e il merging in maniera semplice. Qui vederemo come fare l'upload e il resizing. Com'è possibile vedere dalla documentazione è possibile passare alla funzione resize() anche solo l'altezza o la larghezza; in questi casi l'altro lato verrà ridimensionato in automatico mantenendo le proporzioni. E questa è una cosa molto comoda. Qui potete la doc abbastanza completa. Nell'esempio useremo subito l'upload multiplo con il controllo sulla larghezza in modo tale che se è più larga di 500px venga ridimensionata. Quindi partendo da questo form:
Che ha tre input file e quindi permette da 1 a 3 file contemporaneamente. La parte PHP sarà una cosa del genere:
Al submit del form richiamiamo la libreria e impostiamo alcune variabili:
Poi cominciamo i vari controlli. Con getimagesize() recuperiamo la misure delle immagini. Sotto controlliamo che ogni file non pesi più di $maxSize e che abbia un'estensione supportata. Superati questi controlli controlliamo la larghezza: se supera i 500px carichiamo l'immagine con WideImage::load() e poi usiamo la funzione resize() dando solo la larghezza come parametro. Come detto prima l'altezza verrà ridimensionata automaticamente e in proporzione. Infine usiamo saveToFile() per salvare il file. Sennò facciamo direttamente il salvataggio senza manipolare nulla. Infine $upload diventa TRUE e stampiamo il risultato (o facciamo altro). Questa variabile booleana ci serve perchè così possiamo continuare con altre operazione se ne abbiamo bisogno; io ad esempio devo salvare ogni nome del file nel db e lo faccio solo se tutto è andato a buon fine. Tenere in considerazione quest'ottima libreria! |
| Ultimo aggiornamento Sabato 11 Febbraio 2012 12:49 |


