1

GetPixelとSetPixelを使用して、ある画像のコンテンツを別の画像にコピーしようとしています(他の方法があることは知っていますが、これを試してみたい理由があります; D)

とにかく、写真は.png画像なので、透明度の設定が含まれています。

しかし、何らかの理由で、GetPixelとSetPixelを使用して1つの画像を別の画像に重ねると、2番目の画像が他の画像を完全に置き換えているように見えます。つまり、GetPixelとSetPixelを使用すると、透明度の設定が尊重されないようです。

両方の画像のサイズは同じです。どちらにも透明な領域があります。

4

1 に答える 1

2

SetPixel()を呼び出す前に、MakeTransparnet()を呼び出す必要があります。アルファ画像の最初のピクセルの内容を別の画像にコピーし、最初の画像のアルファチャネルを保持するコードを次に示します。

    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 に答える