Hola xtommy2.
Io faccio cosi:
Creati una tabella con i seguenti campi:
id
foto1
foto1p
descrizione

--------------------------------------------
poi:
sono sicuro che un form lo sai fare........!!!!!!!!!!!!!!!!!
--------------------------------------------
Il form lo invii a questa pagina (chiamala come ti pare)
Codice PHP:
<?php
include // qui includi le classi
$foto str_replace(' '''$foto); // nel caso hai spazi tra il nome della foto, esempio: pippo pippotto
if($_FILES['foto']){
    
$immagine=$_FILES['foto']['tmp_name'];
    
$I=new IMG($immagine);
    
$type=$I->getType();
    if(
$type!="jpeg"&&$type!="png") echo "
"
;
    else {
$type=($type=="jpeg")?"jpg":$type;
        
$nome=$_FILES['foto']['name'];
        if(
file_exists(str_replace(".","_b","img/".$nome))) echo "Attenzione un'immagine con questo nome esiste già!!! Rinomina l'immagine.
"
;
        else { 
            
// immagine grande
            
$I=new IMG($immagine);
            
$I->resize_max(300,200); // scegli tu le dimensioni della immagine in questo caso 300 x 200
            
$foto1=str_replace(".","_m.",$nome);
            
$I->save("img/$foto1");
            
            
$I=new IMG($immagine);
            
$I->centro_proporzionato(150,130); 
            
//Immagine piccola proporzionata, se vuoi escludila e fai la piccola come sopra scegliendo le dimensioni
            
$foto1p=str_replace(".","_p.",$nome);
            
$I->save("img/$foto1p");
            echo 
"Immagine 1 creata.
"
;
            echo 
$nome;
        }
    }
}

if (
$dir = @opendir("img")) // nome cartella a tua scelta in questo caso IMG
    
{
   while ((
$file readdir($dir)) !== false
       {
     if(
$file != "." && $file != ".." && !is_dir("img/$file")) 
         {  
        
$filename "img/".$file;
        if(
substr($filename,-6,-3)=="_p.")
            {
        }
     }  
   }
}
closedir($dir);
// qui la connessione data base
// poi la query INSERT
?>
Queste sono le classi da includere nella pagina che riceve i dati dal form.
Codice PHP:
<?php
/* -----> dichiarazione funzione "SAVE"
        salva l'immagine con il nome passato
    */
    
function save($nome,$qualita="60"){
        if(
$this->_x==0||$this->_y==0) return FALSE;
        else {
            
$func="image".$this->_type;
            
$ok=call_user_func($func,$this->_img,$nome);
            if(
$ok!=FALSE) return FALSE;
            else {
                return 
TRUE;
            }
        }
    }



    
/*-----> dichiarazione funzione "IMG CENTRALE"
        prende l'area centrale dell'immagine di dimensioni definite 
        e la ridimensiona alle nuove dimensioni che vengono passate 
        GD2 nuove .... :o)
    */
    
function centro_proporzionato($width="",$height=""){
        if(
$this->_x==0||$this->_y==0) return FALSE;
        else {
            
$scale=min($this->_x/$width,$this->_y/$height);
            
$por_w=$width*$scale;
            
$por_h=$height*$scale;
            
$x=($this->_x-$por_w)/2;
            
$y=($this->_y-$por_h)/2;
            
$newimg=imagecreatetruecolor($width,$height);
            
$ok=imagecopyresampled($newimg,$this->_img,0,0,$x,$y,$width,$height,$por_w,$por_h); //imagecopyresampled GD2
            
$this->_x=$width;
            
$this->_y=$height;
            if(
$ok==FALSE) return FALSE;
            else {
                
$this->_img=$newimg;
                return 
TRUE;
            }
        }
    }


    
/* -----> dichiarazione funzione "SAVE"
        salva l'immagine con il nome passato
    */
    
function save($nome,$qualita="60"){
        if(
$this->_x==0||$this->_y==0) return FALSE;
        else {
            
$func="image".$this->_type;
            
$ok=call_user_func($func,$this->_img,$nome);
            if(
$ok!=FALSE) return FALSE;
            else {
                return 
TRUE;
            }
        }
    }
        
?>
Dovrebbe funzionare!
Spero di non aver dimenticato nulla.!
Facci sapere!!!!!