mittels gd library z.b.
zuerst mit
getimagesize() die dimensionen aller 4 bilder holen.
das 2te arrayelement des rückgabewertes von
getimagesize() ist der dateityp wobei (imho) 1 für jpeg, 2 für gif und 3 für png steht.
mit dieser info kann man nachfolgenden schritt gut in eine
switch() anweisung packen.
aus den bildern resourcen zur weiterverarbeitung erzeugen mit
imagecreatefromjpeg()/
imagecreatefromgif()/
imagecreatefrompng(), je nachdem welches dateiformat das zu bearbeitende bild hat
dann mit
imagecreatetruecolor() eine fläche erstellen die so breit und hoch ist wie die 4 bilder zusammen.
dann mittels
imagecolorallocate() der fläche eine farbe erzeugen.
dann mittels
imagefill() die fläche mit der ermittelten farbe füllen.
und dann mittels
imagecopymerge() die 4 bilder in die neu erstellte fläche bringen.
danach einfach bild speichern mit
imagepng(), den speicherpfad als 2ten parameter anhängen.
danach das image zerstören mittels
imagedestroy() um die resourcen auf dem server wieder freizugeben.
die tips sind in der richtigen reihenfolge, mithilfe der verlinkten dokumentation und etwas hirnschmalz deinerseits solltest du das hinbekommen.
MfG annemarie`