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

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

但是由于某种原因,似乎当我使用getpixel&setpixel将一个图像放在另一个图像上时,似乎第二张图像完全替换了另一个图像。我的意思是,当我使用get像素和setpixel时,透明度设置似乎并未得到尊重。

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

有帮助吗?

解决方案

在调用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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top