Guardati un pò gli esempi su php.net...
Io ho usato questo...
Codice PHP:
function resizeToFile ($sourcefile$dest_x$dest_y$targetfile$jpegqual)
{
   

/* Get the dimensions of the source picture */
   
$picsize=getimagesize("$sourcefile");

   
$source_x  $picsize[0];
   
$source_y  $picsize[1];
   
$source_id imageCreateFromJPEG("$sourcefile");

/* Create a new image object (not neccessarily true colour) */
       
   
$target_id=imagecreatetruecolor($dest_x$dest_y);

/* Resize the original picture and copy it into the just created image
   object. Because of the lack of space I had to wrap the parameters to 
   several lines. I recommend putting them in one line in order keep your
   code clean and readable */
       

   
$target_pic=imagecopyresampled($target_id,$source_id,0,0,0,0$dest_x,$dest_y,$source_x,$source_y);

/* Create a jpeg with the quality of "$jpegqual" out of the
   image object "$target_pic".
   This will be saved as $targetfile */
 
   
imagejpeg ($target_id,"$targetfile",$jpegqual);

   return 
true;