2011-08-26 12 views

risposta

34

Qualcosa di simile ti darà una nuova immagine con le due immagini originali affiancate.

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); 
    } 
+1

è il risultato delle chiamate .DrawImage() memorizzati nell'oggetto bitmap? –

+1

Correggi ... g è il contesto grafico di bitmap. – PaulB

6

Ho avuto un problema simile. Con questa funzione è possibile unire più bitmap di in un'unica immagine

private Bitmap MergeImages(IEnumerable<Bitmap> images) 
    { 
     var enumerable = images as IList<Bitmap> ?? 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; 
    }