Combina dos imágenes en una nueva imagen

Tengo dos archivos JPEG con diferentes dimensiones:

Imagen1 (Ancho1, Altura1)

Imagen2 (Ancho2, Altura2)

Quiero crear Image3 (Width3, Height3) con Image1 en el lado izquierdo e Image2 a la derecha.

Algo así le dará una nueva imagen con las dos imágenes originales una al lado de la otra.

Bitmap bitmap = new Bitmap(image1.Width + image2.Width, Math.Max(image1.Height, image2.Height)); using (Graphics g = Graphics.FromImage(bitmap)) { g.DrawImage(image1, 0, 0); g.DrawImage(image2, image1.Width, 0); } 

Tuve un problema similar. Con esta función, puedes combinar múltiples mapas de bits en una sola imagen

  private Bitmap MergeImages(IEnumerable images) { var enumerable = images as IList ?? images.ToList(); var width = 0; var height = 0; foreach (var image in enumerable) { width += image.Width; height = image.Height > height ? image.Height : height; } var bitmap = new Bitmap(width, height); using (var g = Graphics.FromImage(bitmap)) { var localWidth = 0; foreach (var image in enumerable) { g.DrawImage(image, localWidth, 0); localWidth += image.Width; } } return bitmap; } 

Puedes probarlo

biblioteca que necesita usar

using System.Drawing; using System.Drawing.Imaging; //controller

 public ActionResult Image() { var bitmap = GetBitmap(); // The method that returns List var width = 0; var height = 0; foreach (var image in bitmap) { width += image.Width; height = image.Height > height ? image.Height : height; } var bitmap2 = new Bitmap(width, height); var g = Graphics.FromImage(bitmap2); var localWidth = 0; foreach (var image in bitmap) { g.DrawImage(image, localWidth, 0); localWidth += image.Width; } var ms = new MemoryStream(); bitmap2.Save(ms, ImageFormat.Png); var result = ms.ToArray(); //string base64String = Convert.ToBase64String(result); return File(result, "image/jpeg"); //Return as file result //return base64String; } //this method returns List public List GetBitmap() { var lstbitmap = new List(); var bitmap = new Bitmap(@"E:\My project\ProjectImage\ProjectImage\BmImage\1525244892128.JPEG"); var bitmap2 = new Bitmap(@"E:\My project\ProjectImage\ProjectImage\BmImage\1525244892204.JPEG"); var bitmap3 = new Bitmap(@"E:\My project\ProjectImage\ProjectImage\BmImage\3.jpg"); lstbitmap.Add(bitmap); lstbitmap.Add(bitmap2); lstbitmap.Add(bitmap3); return lstbitmap; } 

¡Buena suerte!