Questa dovrebbe essere definitiva ... se qualcuno ha dei consigli

La classe

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($v_s_testo,$v_s_font,$v_s_nome,$v_i_size){
    
//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 $v_s_testo;
    
//carico il font
    
$v_s_font $v_s_font;
    
//grandezza font
    
$v_i_fontsize $v_i_size;
    
//dimensioni testo
    
$v_s_txtbox imagettfbbox($v_i_fontsize,$angle,$v_s_font,$v_s_text);
    
//larghezza testo
    
$v_i_textwidth $v_s_txtbox[2]-$v_s_txtbox[0]; // lower right corner - lower left corner
    //spazzi per centrare
    
$v_i_spazi = ($this->v_i_larghezza/2) - ($v_i_textwidth/2);
    
//scrivo il testo
    
imagettftext($v_s_img$v_i_fontsize0$v_i_spazi85$v_s_colour$v_s_font$v_s_text);
    
//creazione dell'immagine
    
imagejpeg($v_s_img,$v_s_nome,100);
    
//elimino l'immagine temporanea
    
unlink("img_temp.jpg");
  }
//close function NewPolaroid

}//close class polaroid 

Esempio

Codice PHP:
//creazione oggetto di tipo polaroid
$objPolaroid = new Polaroid("images/polaroid.jpg","upload_img/".$_FILES['image']['name']);

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

//creo il nome della nuova immagine
$v_s_rinomina str_replace('.jpg''_s.jpg'$_FILES['image']['name']);

//richiamo il metodo NewPolaroid
$objPolaroid->NewPolaroid($_POST['testo'],"bruss.ttf","polaroid/".$v_s_rinomina,"14");