質問

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

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

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

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

役に立ちましたか?

解決

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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top