2011-08-26 41 views

Trả lời

34

Một cái gì đó như thế này sẽ cung cấp cho bạn một hình ảnh mới với hai hình ảnh gốc cạnh nhau.

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

là kết quả của() cuộc gọi .DrawImage lưu trữ trong đối tượng bitmap? –

+1

Chính xác ... g là ngữ cảnh đồ họa của bitmap. – PaulB

6

Tôi gặp sự cố tương tự. Với chức năng này bạn có thể kết hợp nhiều Bitmap thành một hình ảnh duy nhất

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; 
    } 
Các vấn đề liên quan