Zależnie od typu obrazków, tworzysz pusty obrazek który będzie zawierał te dwa obrazki i kopiujesz
<?php
$width = 800; // szerokość całosci
$height = 800; // wysokość całości
$image = imagecreatetruecolor($width, $height);
$white = imagecolorallocate($image,255,255,255);
imagefill($image,0,0,$white);
$im_1 = imagecreatefrompng('image_1.png');
$im_2 = imagecreatefrompng('image_2.png');
imagecopy($image,$im_1,100,100,0,0,imagesx($im_1),imagesy($im_1));
imagecopy($image,$im_2,200,200,0,0,imagesx($im_2),imagesy($im_2));
header('Content-type: image/png'); imagepng($image);
imagedestroy($image);
imagedestroy($im_1);
imagedestroy($im_2);
?>
Ewentualnie imagecopyresized() lub inne podobne funkcje zmieniające rozmiary obrazków.