VB .NET图片GetPixel& SetPixel:包含alpha?

时间:2011-01-06 01:25:25

标签: vb.net alpha getpixel

我正在尝试使用GetPixel和SetPixel将一张图片的内容复制到另一张(我知道还有其他方法可以这样做,但我有理由想尝试这个; D)

无论如何,图片都是.png图片,因此它们包含透明度设置。

但出于某种原因,似乎我使用的是GetPixel& SetPixel将一个图像放在另一个图像上,似乎第二个图像完全取代另一个图像。我的意思是,当我使用GetPixel& amp;时,似乎不尊重透明度设置。 SetPixel。

两张图片都有相同的尺寸。两者都有透明区域。

1 个答案:

答案 0 :(得分:2)

在调用SetPixel()之前,您需要调用MakeTransparnet()。这里有一些代码将alpha图像中第一个像素的内容复制到另一个图像上并保留第一个图像的alpha通道:

    Using img1 = New Bitmap("c:\Users\Owner\Desktop\1.png")
        PX = img1.GetPixel(0, 0)
    End Using

    Using img2 = New Bitmap("c:\Users\Owner\Desktop\2.png")
        img2.MakeTransparent() '//Sets the transparent value and converts the image to Format32bppArgb
        img2.SetPixel(0, 0, PX)
        img2.Save("c:\Users\Owner\Desktop\3.png")
    End Using