PHP: Ridimensionamento Dinamico Di Immagini Jpeg
Lo script php completo per caricare una immagine con un modulo HTML e ridimensionarla con php
Ho sviluppato uno script in php che permette il caricamento sul server ed il ridimensionamento dinamico di immagini JPEG. Può essere di aiuto a chi non è in grado di programmarsi questa funzione autonomamente.
Nell'esempio seguente abbiamo 2 files:
- index.html - il modulo tramite il quale si invia il files
- upload.php - lo script che riceve i dati del modulo, il file dell'immagine quindi, e che esegue il ridimensionamento
Ecco il codice di index.html
1. <form action="upload.php" method="POST" enctype="multipart/form-data">
2. <input name="immagine" type="file" />
3. <input type="submit" />
4. </form>
Di seguito, il codice php del file upload.php che gestisce il ridimensionamento dell'immagine:
0. if ((strstr($_FILES['immagine']['type'],"jpeg") || strstr($_FILES['type']['tmp_name'],"jpg"))) {exit; }
1. $path_to_img=$_FILES['immagine']['tmp_name'];
2. $imagehw = GetImageSize($path_to_img);
3. $final_width=80;
4. $final_height=(80*$imagehw[1])/$imagehw[0];
5. $dst_img=ImageCreateTrueColor(final_width,$final_height);
6. $src_img=ImageCreateFromJpeg($path_to_img);
7. ImageCopyResampled($dst_img,$src_img,0,0,0,0,$final_width,
_$final_height,ImageSX($src_img),ImageSY($src_img));
8. ImageJpeg($dst_img,"/path/to/image.jpg",90);
Ecco la spiegazione del codice:
Riga 0. Controllo il mime-type dell'immagine per verificare che sia una Jpeg (altrimenti esco)
Riga 1. Memorizzo in $path_to_img il percorso dell'immagine da ridmensionare, appena caricata
Riga 2. Ne memorizzo le dimensioni iniziali (x e y) nell'array $imagehw
Riga 3. Fisso la larghezza finale di ridimensionamento
Riga 4. Imposto l'altezza finale in scala
Riga 5. Creo nel buffer di memoria lo spazio per memorizzare l'immagine finale (con la funzione ImageCreateTrueColor)
Riga 6. Mi memorizzo l'immagine JPG da ridimensionare (con la funzione ImageCreateFromJpeg)
Riga 7. Opero il ridimensionamento con la funzione ImageCopyResampled
Riga 8. Salvo l'immagine ridimensionata con percorso e nome specificati nel parameto centrale, con una compressione jpg pari a 90 (ultimo parametro)
Tags:
php
ridimensionamento
programmazione
sviluppo
Daniele Di Gregorio




