1

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

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

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

两个图像具有相同的大小。两者都有透明区域。

4

1 回答 1

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
于 2011-01-06T04:56:05.963 回答