Domanda

Sto cercando di usare getpixel e setpixel per copiare il contenuto di un'immagine su un'altra (so che ci sono altri metodi per farlo, ma ci sono ragioni per cui voglio provare; D)

Ad ogni modo, le immagini sono immagini .png, quindi includono impostazioni di trasparenza.

Ma per qualche motivo, sembra che quando uso GetPixel e SetPixel per mettere un'immagine su un'altra, sembra che la seconda immagine sostituisca completamente l'altra. Voglio dire, sembra che le impostazioni di trasparenza non siano rispettate quando utilizzo getpixel e setpixel.

Entrambe le immagini hanno le stesse dimensioni. Entrambi hanno aree trasparenti.

È stato utile?

Soluzione

Prima di chiamare setPixel () devi chiamare MakeTransParnet (). Ecco un codice che copia il contenuto del primo pixel in un'immagine alfa su un'altra immagine e mantieni il canale Alpha di First Image:

    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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top