【问题标题】:VB .NET picture GetPixel & SetPixel: Include alpha?VB .NET 图片GetPixel & SetPixel:包括alpha?
【发布时间】:2011-01-06 01:25:24
【问题描述】:

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

反正图片都是.png图片,所以包含透明度设置。

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

两张图片大小相同。两者都有透明区域。

【问题讨论】:

  • 所以,您知道还有其他(更好的)方法可以将一个图像复制到 .Net 内置的另一个图像上,对吗?
  • 是的。但是我在使用其他方法时遇到了自己的问题。我问这个主要是出于好奇的目的,同时我解决了我的其他问题:)

标签: vb.net alpha getpixel


【解决方案1】:

在调用 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2016-09-02
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多