Frage

Ich versuche GetPixel und SetPixel zu verwenden, um den Inhalt eines Bildes auf ein anderes zu kopieren (ich weiß, dass es andere Methoden gibt, aber es gibt Gründe, die ich dies versuchen möchte; D)

Wie auch immer, die Bilder sind .png -Bilder, daher enthalten sie Transparenzeinstellungen.

Aber aus irgendeinem Grund scheint es, als würde ich GetPixel & SetPixel verwenden, um ein Bild über ein anderes zu legen, das zweite Bild ersetzt das andere vollständig. Ich meine, es scheint, dass die Transparenzeinstellungen nicht respektiert werden, wenn ich GetPixel & setPixel verwende.

Beide Bilder haben die gleiche Größe. Beide haben transparente Bereiche.

War es hilfreich?

Lösung

Vor dem Aufrufen von setpixel () müssen Sie anrufen Maketransparnet (). Hier ist ein Code, der den Inhalt des ersten Pixels in einem Alpha-Image auf ein anderes Bild kopiert und den Alpha-Kanal des ersten Bildes behält:

    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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top