Sembra funzionare alla grandissima, grazie! Solo una cosa, se la foto è più piccola delle dimensioni impostate, la miniatura non viene creata, si potrebbe fare qualche cosa, tipo un ingrandimento? Probabilmente non capiterà mai però se la cosa si può prevedere con poco codice...
Ora il codice è il seguente,
Codice PHP:
<?php
function makeThumb($dir,$pic,$n,$t){
list($width, $height, $type, $attr) = getimagesize($pic);
$max_w = 300;
$max_h = 100;
// area utile e offset
if ($width>$height*$max_w/$max_h) {
$a_h = $height;
$a_w = $a_h*$max_w/$max_h;
$delta_x = floor(($width-$a_w)/2);
$delta_y = 0;
}
else {
$a_w = $width;
$a_h = $a_w*$max_h/$max_w;
$delta_x = 0;
$delta_y = floor(($height-$a_h)/2);
}
// verifico che l'immagine originale sia più grande delle dimensioni massime 100*100px
if ($max_w<$width && $max_h<$height) {
// 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_w,$a_h);
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);}
}
}
?>
è esatto oppure ho lasciato parte del tuo precedente codice che non occorre più con la tua ultima implementazione postata a parte?