Чтобы перекрыть их (не совсем понятно, что вы имеете в виду под этим), но сначала вы должны создать растровое изображение размера, необходимого для размещения всех изображений в макете, который вы хотите.
Bitmap final = new Bitmap(int x, int y);
тогда вам нужно получить графическое устройство из этого растрового изображения. Вы будете использовать этот объект, чтобы нарисовать все остальные изображения на конечном изображении в нужных местах желаемой кладки.
using (Graphics g = Graphics.FromImage(final))
{
foreach (Image image in imageList)
{
g.DrawImage(image, point); // point - location of where images top-left corner should be.
}
}
Затем, когда вы закончите, вы просто вызовете функцию сохранения изображения в расположение строкового файла.
final.Save(location);