Ciao
Quello che devi fare è creare un'immagine con le dimensioni dell'immagine finale, e poi su questa disegnare ad una ad una le immagini più piccole dalle quali deve essere composta. Ovviamente le posizioni delle immagini più piccole devi trovare il modo di calcolarle, quindi per disegnare le immagini usi il metodo DrawImage della classe Graphics, ottenendo l'oggetto dall'immagine col metodo FromImage:
//Le quattro bitmap da cui creare l'immagine finale
Bitmap _1 = new Bitmap(50, 50);
Graphics.FromImage(_1).Clear(Color.Red);
Bitmap _2 = new Bitmap(50, 50);
Graphics.FromImage(_2).Clear(Color.Green);
Bitmap _3 = new Bitmap(50, 50);
Graphics.FromImage(_3).Clear(Color.Blue);
Bitmap _4 = new Bitmap(50, 50);
Graphics.FromImage(_4).Clear(Color.Gray);
//L'immagine finale
Bitmap final = new Bitmap(100, 100);
//Ottiene un graphics per disegnare sull'immagine
using (Graphics g = Graphics.FromImage(final))
{
//Disegna le 4 immagini
g.DrawImage(_1, 0, 0);
g.DrawImage(_2, 50, 0);
g.DrawImage(_3, 0, 50);
g.DrawImage(_4, 50, 50);
}
//Salva l'immagine
final.Save(@"C:\img.jpg");
Luca