2012-11-30 74 views
0

我有我的pixBox1这是修复和无法改变的图像结合2个图片框到一个新的图片框

和pixBox2不固定,可以改变那里的颜色和旋转在这里

我使用OpenFileDialog函数将图像放入这些pixbox中

所以现在如何将这两个pixbox结合到我的pixbox3中?

我尝试这一点,但它看起来并不像它去上班:

Dim image As New Bitmap(pixBox1.Image) 
    Dim image2 As New Bitmap(pixBox2.Image) 
    Dim Image3 As New Bitmap(300, 300) 

    Dim g As Graphics = Graphics.FromImage(Image3) 

    g.DrawImage(image1, New Point(300, 300)) 

    g.DrawImage(image2, New Point(300, 300)) 

    g.Dispose() 

    g = Nothing 

    pixBox3.Image = Image3 
+0

你是什么意思的结合?并排连接?叠加某种颜色混合?覆盖透明度? – Kratz

+0

混色重叠 –

+0

请勿在(300,300)处绘制图像,将其绘制在位图外部。改为在(0,0)处绘制。 –

回答

0

这是有点丑又慢,但它基本上将所有的像素image2为50%透明然后绘制它在Image的顶部。

Dim image As New Bitmap(pixBox1.Image) 
Dim image2 As New Bitmap(pixBox2.Image) 
Dim Image3 As New Bitmap(300, 300) 

Using g As Graphics = Graphics.FromImage(Image3) 

    'make 2nd bmp translucent 

    For Integer Xcount = 0 To image2.Width - 1    
     For Integer Ycount = 0 To image2.Height - 1 
      Dim c as Color = image2.GetPixel(Xcount, Ycount) 
      c = Color.FromARGB(125, c.R, c.G, c.B) '50% alpha 
      image2.SetPixel(Xcount, Ycount, c) 
     Next 
    Next 

    g.DrawImage(image1, New Point(0, 0)) 

    g.DrawImage(image2, New Point(0, 0)) 

End Using 

pixBox3.Image = Image3 

作为一个侧面说明,Using块确保g配置无论发生什么事情。