Sto usando questo script per ridimensionare delle immagii:

Codice PHP:
<?
// Definisco con una costante
// il per corso fisico alla cartella che contiene le immagini
define('IMAGE_BASE''./immagini'); 
//Definisco le costanti per le dimensioni standard
//dell'immagine di errore (immagine generata con GD)
define('MAX_WIDTH'150);             
define('MAX_HEIGHT'150);
//Definisco la costante che mi indica la percentuale di ridimensionamento immagine
define('NEW_SIZE'75);
//Definisco la costante per l'immagine (fisica) da visualizzare in caso di errore
define('GIF_ICON''./immagini/error.gif');

function 
Thumbnalizer ($image_file)
{

//Costruisco il percorso al file immagine
//La variabile $image_file contiene il nome del file
//completo di estensione. Es: pippo.jpg
$image_path IMAGE_BASE "/filippo.jpg";
// Controllo che il file esiste e sia accessibile
//se non lo fosse passo all'header della pagina
//il target GIF e uso le funzioni fpassthru(per visualizzare) ed fopen
//(per aprire) il file immagine di errore
    
if (!filesize($image_path) || !is_readable($image_path)){
        
header("Content-type: image/gif");
        
fpassthru(fopen(GIF_ICON'rb'));
        exit;
    }
//Inizializzo le variabili che mi serviranno per
//Calcolare le nuove dimensioni dell'immagine
//E la variabile che conterrà l'immagine creata
$new_size NEW_SIZE;
$img null;
//Estraggo l'estensione del file dalla stringa path
//in base a tale estensione inizializzo tramite le chiamte
//alle funzioni GD apposite la variabile immagine
$ext strtolower(end(explode('.'$image_path)));
if (
$ext == 'jpg' || $ext == 'jpeg') {
    
$img imagecreatefromjpeg($image_path);
} else if (
$ext == 'png') {
    
$img imagecreatefrompng($image_path);
// Alcune versioni delle librerie GD 2.x e 1.x
// non posseggono il supporto per la creazione delle immagini
// .GIF in tal caso si può utilizzare il codice precedentemente
//visto per vilualizzare un immagine di errore predefinita
} else if ($ext == 'gif') {
    
$img imagecreatefromgif($image_path);
    
//header("Content-type: image/gif");
    //fpassthru(fopen(GIF_ICON, 'rb'));
    //exit;
}

//Se l'immagine è stata correttamente caricata continuo
if ($img) {

    
//la funzione getimagesize ritorna un array da 0 a 3
    //con rispettivamente larghezza, altezza e tipo immagine.
    
$imginfo getimagesize($image_path);
    
$width $imginfo[0];
    
$height =  $imginfo[1];
    
//Definisco la percentuale di ridimento
    
$scale max($width$height) / $new_size;
    
$scale max($scale1.0);
    
//Calcolo le nuove dimensioni dell'immagine in maniera proporzionale
    
$new_width 150;
    
$new_height 100;
    
//Creo una nuova immagine temporanea usando la funzione imagecreatetruecolor
    //che è disponibile solo nelle librerie GD 2.x e che da
    //rispetto alla vecchia imagecreate(da usare per chi ha le GD 1.x)
    //risultati ottimi in fatto di qualità dell'immagine
    
$tmp_img imagecreatetruecolor($new_width$new_height);
    
//$tmp_img = imagecreate($new_width, $new_height);
    //A questo punto dall'immagine di origine $img creo nel contenitore
    //$tmp_img l'immagine ridimensionata. Attenzione ai parametri della funzione
    //imagecopyresampled, non li spiegherò, sono facilmente intuibili.
    //Tale funzione è disponibile per chi ha installato sul prorio server il modulo
    //delle GD 2.x, nel caso abbia le GD 1.x deve usare la funzione imagecopyresized
    
imagecopyresampled($tmp_img$img0000
                         
$new_width, (int)$new_height$width$height);
    
//imagecopyresised($tmp_img, $img, 0, 0, 0, 0, 
    //                 $new_width, (int)$new_height, $width, $height);
    //Quindi distruggo (tolgo dalla memoria) la variabile $img (immagine originale)
    //e le assegno il valore nuovo (immagine ridimensionata) contenuto in $tmp_img
    
imagedestroy($img);
    
$img $tmp_img;
}

//Se qualcosa va storto e la variabile $img è vuota
//allora provvedo alla creazione attraverso i comandi
//di grafica delle GD di un immagine a cui assegno
//le dimenzioni predefinte con define, uno sfondo giallo
//(rgb: 255,255,204) e disegno con le funzioni imageline
//due linee blu (rgb: 70,70,70) trasversali all'interno della mia
//immagine quadrata
//
if ($img == null) {
    
$img imagecreate(MAX_WIDTHMAX_HEIGHT);
    
imagecolorallocate($img,255,255,204);
    
$c2 imagecolorallocate($img,70,70,70);
    
imageline($img,0,0,MAX_WIDTH,MAX_HEIGHT,$c2);
    
imageline($img,MAX_WIDTH,0,0,MAX_HEIGHT,$c2);
    
//$text_color = ImageColorAllocate($img, 102 ,153, 204
    
}

//A questo punto alla pagina di chiamata
//faccio ritornare l'header che le fa capire che trattasi
//di immagine (di JPEG)
header("Content-type: image/jpeg");
//La funzione qui sotto serve proprio a questo
//E' possibile specificare nei parametri, opzionali
//un nome e la percentuale di compressione
imagejpeg($img,'',100); //imagedestroy($tmp_img);
//infine libero la memoria con la funzione imagedestroy
imagedestroy($img);

$image $_GET['image'];

Thumbnalizer ($image);
?>
Fa il suo lavoro senza problemi... l'unica cosa è che non riesco a salvare l'immagine creata in una data cartella...

come posso fare GRAZIE