Segue a forma que utilizei
public void CriarImagem(List<Image> Imagens, string Diretorio, string NomeImagemNova, string extensao)
{
try
{
Bitmap bitmap;
int altura = 0;
int largura = 0;
foreach (Image image in Imagens)
{
bitmap = new Bitmap(image, image.Width, image.Height);
if (bitmap.Width > largura)
largura = bitmap.Width;
altura += bitmap.Height;
}
Bitmap bmpNova = new Bitmap(largura, altura);
Graphics graphics = Graphics.FromImage(bmpNova);
altura = 0;
foreach (Image image in Imagens)
{
graphics.DrawImage(image, 0, altura);
altura += (image.Height + 1);
}
if(!Directory.Exists(Diretorio))
{
throw new DirectoryNotFoundException();
}
bmpNova.Save(Diretorio + NomeImagemNova + extensao);
}
catch (FileNotFoundException ex)
{
throw ex;
}
}