Eccola ... logicamente la classe è migliorabile ... però inizia a prendere forma ...
L'unica cosa che ancora non riesco a fare, è centrare il testo in base alle lettere da cui è composto ... è possibile?

Grazie!!

Codice PHP:
class Polaroid{

  
//url delle immagini
  
var $v_s_urlpol;
  var 
$v_s_urlupl;
  
//larghezza ed altezza immagine di sfondo
  
var $v_i_larghezza;
  var 
$v_i_altezza;
  
//larghezza ed altezza immagine inviata
  
var $v_i_larghezza2;
  var 
$v_i_altezza2;
  
//variabili per il resize
  
var $v_i_qualita;
  var 
$v_i_newh;
  var 
$v_i_newl;
  
  
//costruttore della classe
  
function Polaroid($v_s_imgori,$v_s_imgmod){
    
//recupero i parametri
    
$this->v_s_urlpol $v_s_imgori;
    
$this->v_s_urlupl $v_s_imgmod;
    
//ricavo altezza e larghezza dell'immagine di sfondo
    
list($this->v_i_larghezza$this->v_i_altezza) = getimagesize($this->v_s_urlpol);
    
//ricavo altezza e larghezza dell'immagine inviata
    
list($this->v_i_larghezza2$this->v_i_altezza2) = getimagesize($this->v_s_urlupl);
  }
//close function polaroid

  
function ResizeUpload($v_i_qualita,$v_i_newaltezza,$v_i_newlarghezza){
    
//qualita' dell'immagine
    
$this->v_i_qualita $v_i_qualita
    
//nuova altezza         
    
$this->v_i_newh $v_i_newaltezza
    
//nuova larghezza
    
$this->v_i_newl $v_i_newlarghezza;
    
//immagine da sovrapporre
    
$v_s_img =  imagecreatefromjpeg($this->v_s_urlupl);
    
//restituisce un identificatore di immagini che rappresentano una immagine nera della specificate dimensioni
    
$tmp_img imagecreatetruecolor($this->v_i_newl$this->v_i_newh);
    
//ridimensionamento dell'immagine
    
imagecopyresized($tmp_img$v_s_img0000$this->v_i_newl$this->v_i_newh$this->v_i_larghezza2$this->v_i_altezza2); 
    
//cancello l'immagine caricata
    
imagedestroy($v_s_img);
    
//variabile v_s_img 
    
$v_s_img $tmp_img
    
//nome dell'immagine temporanea
    
$v_s_newimg "img_temp.jpg";
    
//creazione dell'immagine temporanea 
    
imagejpeg($v_s_img$v_s_newimg$this->v_i_qualita); 
  }
//close function ResizeUpload

  
function NewPolaroid(){
    
//creo un'immagine nuova delle stesse dimensioni dello sfondo
    
$v_s_newimg imagecreatetruecolor($this->v_i_larghezza,$this->v_i_altezza);
    
//recupero le dimensioni    
    
$v_i_sizepol getimagesize($this->v_s_urlpol);
    
$v_i_sizetemp getimagesize("img_temp.jpg");
    
//le immagini da unire
    
$v_s_img =imagecreatefromjpeg($this->v_s_urlpol);
    
$v_s_img2 =imagecreatefromjpeg("img_temp.jpg");
    
//unisco le immagini
    
imagecopy($v_s_img,$v_s_img2,9,5,0,0,$v_i_sizetemp[0],$v_i_sizetemp[1]);
    
//il testo
    
$v_s_text 'Testing...';
    
//carico il font
    
$v_s_font 'bruss.ttf';
    
//scrivo il testo    
    
imagettftext($v_s_img1401084$v_s_colour$v_s_font$v_s_text);
    
//creazione dell'immagine
    
imagejpeg($v_s_img,'definitiva.jpg',100);
    
//elimino l'immagine temporanea
    
unlink("img_temp.jpg");
  }
//close function NewPolaroid

}//close class polaroid 


//creazione oggetto di tipo polaroid
$objPolaroid = new Polaroid("img.jpg","prova.jpg");

//richiamo il metodo ResizeUpload
$objPolaroid->ResizeUpload("100","63","103");

//richiamo il metodo NewPolaroid
$objPolaroid->NewPolaroid();