C#我该如何合并两个位图?(C# How can I merge two Bitmaps?)

2019-10-29 04:29发布

我试图找到一种方法,在Paint事件一起合并两个位图。 我的代码如下所示:

private void GraphicsForm_Paint(object sender, PaintEventArgs e)
{
    try
    {
        Bitmap1 = new Bitmap(1366, 768);
        Bitmap2 = new Bitmap(1366, 768);
        OutputBitmap = ...//and this is where I've stuck :(
    }
    catch
    {
    }
}

问题是更成问题,因为其绘制到Bitmap2图形对象是在其他类。 我也想Bitmap2背后Bitmap1上绘制的OutputBitmap。

谁能给我到一个输出位的好如何将这两个位图合并的建议(海誓山盟的背后,却)?

谢谢 :)

Answer 1:

假设你的位图有透明区域,尝试创建一个位图和其他两个位图绘制到它想要的顺序:

private Bitmap MergedBitmaps(Bitmap bmp1, Bitmap bmp2) {
  Bitmap result = new Bitmap(Math.Max(bmp1.Width, bmp2.Width),
                             Math.Max(bmp1.Height, bmp2.Height));
  using (Graphics g = Graphics.FromImage(result)) {
    g.DrawImage(bmp2, Point.Empty);
    g.DrawImage(bmp1, Point.Empty);
  }
  return result;
}


文章来源: C# How can I merge two Bitmaps?