Вы можете попробовать что-то вроде этого (извините, не знаю C #)
Public Function CreateImageFromThumbnails(ByVal lstImages As List(Of Image)) As Bitmap
Dim width As Integer = 0
Dim height As Integer = Integer.MinValue
For Each img In lstImages
If img.Height > height Then
height = img.Height
End If
width += img.Width
Next
Dim bmp As New Bitmap(width, height)
Using fnt As New Font("Verdana", 14)
Using gfx As Graphics = Graphics.FromImage(bmp)
Dim x As Integer = 0
For Each img As Image In lstImages
gfx.DrawImageUnscaled(img, x, 0)
x += img.Width
Next
gfx.DrawString("Sample String", fnt, Brushes.White, 0, 0)
End Using
End Using
Return bmp
End Function
Public Sub CreateImage()
Dim lstImages As New List(Of Image)
lstImages.Add(Bitmap.FromFile("thumbnail1.png"))
lstImages.Add(Bitmap.FromFile("thumbnail2.png"))
lstImages.Add(Bitmap.FromFile("thumbnail3.png"))
lstImages.Add(Bitmap.FromFile("thumbnail4.png"))
Using result As Bitmap = CreateImageFromThumbnails(lstImages)
result.Save("c:\result.bmp")
End Using
End Sub