Weisse Pixel Transparent machen

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von FuFu^^.

    Weisse Pixel Transparent machen

    Hallo Zusammen

    Ich habe ein kleines Problem und hoffe, dass Ihr mir vielleicht helfen könnt :whistling:
    Im Internet habe ich diesen Code gefunden, der weisse Pixel eines Bildes transparent macht, und auch bestens funktionniert:

    Quellcode

    1. Public Class Form1
    2. Private Sub PictureBox2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox2.Click
    3. Dim bmp As New Bitmap(PictureBox2.Image)
    4. Dim trans As Integer = 100 'Gibt die Transparenz des Bildes an (255 ist nicht transparent)
    5. Dim c As Color = Color.FromArgb(trans, 255, 255, 255)
    6. 'Die Hintergrundfarbe der PictureBox wird Transparent gesetzt,
    7. 'Damit alles dahinter sichtbar wird.
    8. PictureBox2.BackColor = Color.Transparent
    9. 'Geht alle Pixel des Bildes durch und überprüft, ob die
    10. 'Farbe Weiß (255,255,255) mit dem Alphawert 255 ist.
    11. 'Dann wird das Weiß durch das transparente Weiß ersetzt
    12. For i As Integer = 0 To bmp.Width - 2
    13. For j As Integer = 0 To bmp.Height - 2
    14. If bmp.GetPixel(i, j) = Color.FromArgb(255, 255, 255, 255) Then
    15. bmp.SetPixel(i, j, c)
    16. End If
    17. Next
    18. Next
    19. PictureBox2.Image = bmp
    20. End Sub
    21. End Class


    Mit einem Nächsten Code lädt man ja bekanntlich ein Bild per URL in die PictureBox

    Quellcode

    1. PictureBox2.ImageLocation = TextBox1.Text


    Jetzt zu meiner eigentlichen Frage: Wie kombiniert man jetzt beide Codes miteinnander?
    Oder anders gesagt: Wenn man jetzt per URL in der TextBox1 ein Bild in PictureBox2 lädt, sollen alle weissen Pixel (255,255,255) von jenem Bild transparent gemacht werden.

    Ihr seht villeicht, dass ich noch nicht viel Ahnung von VB habe, dennoch versuche ich mit vielen Tutorials (und vielleicht noch mehr Forum-Hilfe) das ganze hinzubekommen.
    Über Antworten währe ich natürlich sehr froh :D

    Viele Grüsse
    Zyrahl

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Hallo kinsi

    Meinst du sowas?

    Quellcode

    1. Public Class Form1
    2. Private Sub PictureBox2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox2.Click
    3. PictureBox2.ImageLocation = TextBox1.Text
    4. MakeTransparent(Color.White)
    5. End Sub
    6. Public Sub MakeTransparent(ByVal transparentColor As Color)
    7. transparentColor = Color.White
    8. End Sub
    9. End Class


    Das funktionniert leider nicht so ganz... :(
    Gruss Zyrahl

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Zyrahl“ ()

    da du schon .NET verwendest (und nicht wie angegeben VBS), könntest du einfach LockBits verwenden. Steht alles hier beschrieben, incl. C&P-Code, toll :) msdn.microsoft.com/de-de/library/5ey6h79d.aspx