Originariamente inviato da Magicale
Codice PHP:
<?php
function makeThumb($dir,$pic,$n,$t){
list($width, $height, $type, $attr) = getimagesize($pic);
$max_w = $max_h = 100;
// verifico che l'immagine originale sia più grande delle dimensioni massime 100*100px
if ($max_w<$width && $max_h<$height) {
// Dimensione Area Utile
$a = min($width,$height);
//Offset
$delta_x = $delta_y =0;
if ($width>$height)
$delta_x = floor(($width-$height)/2);
else
$delta_y = floor(($height-$width)/2);
// creo una nuova immagine
$thumb = imagecreatetruecolor($max_w,$max_h);
if ($t == 'image/jpeg'){$temp = imagecreatefromjpeg($pic);}
elseif ($t == 'image/gif'){$temp = imagecreatefromgif($pic);}
elseif ($t == 'image/png'){$temp = imagecreatefrompng($pic);}
// ridimensiono l'originale e salvo nella cartella di destinazione
imagecopyresampled($thumb,$temp,0,0,$delta_x,$delta_y,$max_w,$max_h,$a,$a);
if ($t == 'image/jpeg'){imagejpeg($thumb,"$dir/tb_".$n, 75);}
elseif ($t == 'image/gif'){imagegif($thumb,"$dir/tb_".$n);}
elseif ($t == 'image/png'){imagepng($thumb,"$dir/tb_".$n, 75);}
}
}
?>
Non l'ho verificata, ma mi pare sia a posto così...
Alcune note:
- funziona solo per $max_w = $max_h, in caso contrario va modificato con qualche conto in più
- non so come recuperi i mimetype, ma per le jpg potrebbero arrivartene altri, tipo: image/pjpeg
- imagegif non ha il 3° parametro che definisce la "qualità"