使用.NET将两个PNG图像组合成一个图像

时间:2011-01-05 21:38:00

标签: vb.net png

我的应用程序中有两个(实际上很多)PNG(。png)图像。两者都有透明的区域。

我希望,在我的应用程序中,拍摄两张图像,合并它们,并在图片框中显示结果。后来我想通过按钮保存结果。

到目前为止,我设法找到了两个图像并将它们组合在一起,但似乎透明度不会起作用。我的意思是,如果你把一个图像放在另一个图像上,结果只能看到顶部图像,因为显然,图像的背景是纯白色的盒子。它不是。

以下是我的一些代码:

    Dim Result As New Bitmap(96, 128)
    Dim g As Graphics = Graphics.FromImage(Result)
    Dim Name As String
    For Each Name In BasesCheckList.CheckedItems
        Dim Layer As New Bitmap(resourcesPath & "Bases\" & Name)
        For x = 0 To Layer.Width - 1
            For y = 0 To Layer.Height - 1
                Result.SetPixel(x, y, Layer.GetPixel(x, y))
            Next
        Next
        Layer = Nothing
    Next

resourcesPath是我的资源文件夹的路径。 Bases是其中的一个文件夹。 Name是图片的名称。

2 个答案:

答案 0 :(得分:3)

问题是你是想亲手做到这一点。别。有很多用于绘制图像的库例程,他们知道如何正确处理透明度。

Dim Result As New Bitmap(96, 128)
Dim g As Graphics = Graphics.FromImage(Result)
Dim Name As String
For Each Name In BasesCheckList.CheckedItems
    Dim Layer As New Bitmap(resourcesPath & "Bases\" & Name)
    g.DrawImageUnscaled(Layer, 0, 0);
    Layer = Nothing
Next

答案 1 :(得分:1)