Salve.
Ho la necessità di effettuare un merge tra due immagini.
Poniamo di avere la seguente immagine:

Come vedete ha uno sfondo bianco.
Quello che mi serve è creare una nuova immagine con Width ed Height scelto che abbia come sfondo il bianco ed in cui l'immagine di cui sopra sia centrata e "incollata" sopra quella da me creata.
Qua sotto quello che vorrei ottenere. Per esempio una immagine 300x300 a sfondo bianco con il logo centrato.

Per effettuare questa cosa ho pensato di creare una immagine da zero con createimage, fillarla di bianco e usare imagecopymerge per mettere quella originale a coordinate specifiche.
La cosa funziona ma il risultato non è quello sperato ma quello sotto:

Qui invece il codice che sto usando.
$imageInfo è un array che rappresenta l'immagine originale dove:
$imageInfo['color']['red']: contiene il codice del rosso del colore di sfondo (es. 255);
$imageInfo['color']['blue']: vedi sopra;
$imageInfo['color']['green']: vedi sopra;
$imageInfo['width'] : larghezza;
$imageInfo['height'] : altezza;
$imageInfo['img_source'] : contiene la risorsa immagine creata tramite la funzione imagecreatefromjpeg;
Codice PHP:
public function buildRealLogo($imageInfo,$width,$height){
$imgFinal = imagecreate($width,$height);
imageantialias ($imgFinal,true);
//$background = imagecolorallocate($imgFinal,$imageInfo['color']['red'],$imageInfo['color']['green'], $imageInfo['color']['blue']);
$background = imagecolorallocate($imgFinal,255,255,255);
imagefill ($imgFinal,1,1,$background);
$destX = floor(($width/2)-($imageInfo['width']/2));
$destY = floor(($height/2)-($imageInfo['height']/2));
imagecopymerge ($imgFinal,$imageInfo['img_resource'],$destX,$destY,1,1,$imageInfo['width'],$imageInfo['height'],50);
return $imgFinal;
}
Dove sbaglio?