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_".$n75);}
    elseif (
$t == 'image/gif'){imagegif($thumb,"$dir/tb_".$n);}
    elseif (
$t == 'image/png'){imagepng($thumb,"$dir/tb_".$n75);}
  }
}
?>
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à"
Grazie, ho capito perfettamente le tue considerazioni, e riguardo al parametro qualità assente in imagegif, dovrebbe essere lo stesso per PNG, o sbaglio?

Comunque, ho estrema necessita di un crop ben definito, si potrebbe impostare la cosa che se la foto originale è molto larga, si ridimensiona proporzionalmente in altezza e si croppa ai lati per avere la parte centrale impostata in maniera predefinita/fissata, all'opposto se l'immagine originale è molto stretta.

Mi dai qualche suggerimento gentilmente? Anche con soluzioni diverse, l'importante che le fasi siano 2, ridimensionamento proporzionato fino ad un certo punto e poi crop predefinito, limitando così al minimo il taglio nelle immagini.