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:        

Daniele Di Gregorio


11.02.2008 Opensource e strumenti on line


Vuoi ricevere gli ultimi articoli
e tenere d'occhio i commenti direttamente sul tuo PC?

Ikaro Toolbar

Potrai inoltre navigare ascoltando decine
di radio on line, accedere a centinaia
di TV in streaming
e chattare con gli altri visitatori del sito.

Per Windows 2000/XP. No spyware!

Syndacate Feed

Feedburner Technorati

Avvisami per email quando sono presenti nuovi articoli:


Contatto Contattami


Skype: ikaro.net
Email: compila il modulo


Pubblica Pubblica


Collabora

Suggerisci un tuo post o pubblica il tuo articolo. Gli articoli verranno pubblicati assieme agli altri redazionali con un link al tuo blog (continua)


Newsradar

• Ning: Crea Il Tuo Social Network Con Pochi Click

• Pochi Layout Per Movable Type 4? Prova Col Design Assistant

• Usa Il Tuo Account Google Come OpenID

• Mi Dai Il Tuo Account Digg?

• La Russia Taglia I Ponti Con Microsoft: Dal 2009 Solo Linux

• Crea Le Tue Favicon Online: Favikon

• Blogging: Layout Personalizzati In Un Istante Con Firdamatic

• Internet e Caipirinha: Ikaro Sbarca In Brasile (e Portogallo)

• Velocità ADSL: I Test Online Più Affidabili

• Una Miniera Di Conoscenza Condivisa: eDocr

Altre news •>


Creative Commons License
Ove non diversamente specificato, tutti i contenuti sono rilasciati sotto Licenza Creative Commons.

Logo
English