ATTENZIONE!
L'articolo che stai leggendo è stato scritto 673 giorni orsono.
Le informazioni presenti potrebbero non essere aggiornate!

php at davidonzo.comIn vista di un restyling del blog, mi sono scritto un file che permette di creare al volo delle miniature di file immegine nei formati più comuni.

Lo script in questione prende in get un file immagine e lo ridimensiona in funzione dei pixel specificati. E' possibile ridimensionare immagini jpeg, gif e png. E' richiesta la libreria GD.

<?php
   $file = $_GET['file'];
   $resize = $_GET['w'];
   $altez  = $_GET['h'];

    $cosa = getimagesize($file);
    $width = ($resize < $cosa[0]) ? $resize : $cosa[0];
    $alte = (!$altez) ? ceil(($cosa[1] * $width)/$cosa[0])+1 : $altez;
    $min  = imagecreatetruecolor($width, $alte);
     switch($cosa['mime']){
       case 'image/png':
         header('Content-Type: image/png');
         $im = imagecreatefrompng($file);
         imagealphablending($min, false);
         imagecopyresized($min, $im, 0, 0, 0, 0, $width, $alte, imageSx($im), imageSy($im));
         imagesavealpha($min, true);
         imagepng($min,'',8,PNG_ALL_FILTERS);
       break;
    
       case 'image/gif':
         header('Content-Type: image/png');
         $im = imagecreatefromgif($file);
         imagealphablending($min, false);
         $colorTransparent = imagecolorallocatealpha($min, 0, 0, 0, 127);
         imagefill($min, 0, 0, $colorTransparent);
         imagecopyresized($min, $im, 0, 0, 0, 0, $width, $alte, imageSx($im), imageSy($im));
         imagesavealpha($min, true);
         imagepng($min,'',8,PNG_ALL_FILTERS);
       break;
    
       case 'image/jpeg':
       case 'image/jpg':
         header('Content-Type: image/jpeg');
         $im = imagecreatefromjpeg($file);
         imagecopyresized($min, $im, 0, 0, 0, 0, $width, $alte, imageSx($im), imageSy($im));
         imagejpeg($min,'',85);      
       break;    
     }
      imagedestroy($min);
?>

Qualche specifica sull'utilizzo

Scrivendo il codice nel file resize.php (o come volete chiamarlo), basterà lanciare in GET lo script nel seguente modo:


http://example.com/resize.php?file=http://example.com/img.png&w=200&h=100

var $file - Obbligatorio - string

Deve essere un indirizzo valido ad una immagine in formato gif, jpeg o png.

var $w - Obbligatorio - integer

Imposta la larghezza dell'immagine, risimensionandola nei pixel specificati. Nel caso in cui $h non sia specificato l'immagine verrà ridimensionata mantenendo le proporzioni iriginali.

var $h - Opztionale - integer

Imposta l'altezza dell'immagine in pixel. Questo parametro può far perdere le proporzioni originali dell'immagine. Da usare con cautela.

TODO

Mancano nello script eccezioni di file not found, illeggibilità dell'immagine, tipo non supportato. Sinceramente a me non servono, ma se qualcuno volesse aggiungere queste parti di codice e condividerle farete cosa gradita.

Hai trovato l'articolo interessante?
Sottoscrivi il Feed RSS per essere informato automaticamente degli ultimi aggiornamenti!
 
.Commenti rss

Nessuno ha ancora commentato...



I commenti possono essere moderati.
Se non lo vedi comparire subito non reinserirlo più volte.
Grazie per la gentile collaborazione.