Filter (schwarzweiß bsp.) auf Webcamvideo in Picturebox legen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 54 Antworten in diesem Thema. Der letzte Beitrag () ist von Gonger96.

    Welchen nicht freigegebenen Member?

    VB.NET-Quellcode

    1. Dim effect = New GdipEffects.HueSaturationLuminance()
    2. effect.SaturationLevel = -100
    3. GdipEffects.GdiPlusExtensions.ApplyEffect(bmp, effect, New Rectangle(0, 0, b.Width, b.Height))
    4. effect.Dispose()

    Mir wurde angezeigt das bmp null werden kann deswegen hab ich bmp = Pb1.Image (picturebox) eingefügt
    Aber das Bild in der Picturebox nimmt den Effekt nicht an muss ich das Bild in der Picturebox(Das per Openfile rein gezogen wird)
    ansprechen?

    VB.NET-Quellcode

    1. Private Sub cb1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cb1.CheckedChanged
    2. Dim effect = New GdipEffects.HueSaturationLuminance()
    3. Dim bmp As Bitmap
    4. bmp = Pb1.Image
    5. Using hsl As New HueSaturationLuminance()
    6. hsl.SaturationLevel = -100
    7. GdipEffects.GdiPlusExtensions.ApplyEffect(bmp, effect, New Rectangle(0, 0, bmp.Width, bmp.Height))
    8. effect.Dispose()
    9. End Using
    10. End Sub
    11. End Class


    so mein code. Keine Fehlermeldungen

    Zcared schrieb:

    VB.NET-Quellcode

    1. Dim bmp As Bitmap
    2. bmp = Pb1.Image
    Probier mal:

    VB.NET-Quellcode

    1. Dim bmp = New Bitmap(Pb1.Image)
    2. ' ...
    3. GdipEffects.GdiPlusExtensions.ApplyEffect(bmp, effect, New Rectangle(0, 0, bmp.Width, bmp.Height))
    4. ' ...
    5. Pb1.Image = bmp

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Aua, das tut ja weh. Wieso hast du denn da zweimal den selben Effekt und nur einer wird benutzt. Lern am Besten erstmal ein wenig die Sprache kennen und dann kannst du dich an Größeres heranwagen.
    Der wichtige Teil ist ja schon im Using drin.

    VB.NET-Quellcode

    1. Using hsl As New HueSaturationLuminance()
    2. hsl.SaturationLevel = -100
    3. GdiplusExtensions.ApplyEffect(bmp, hsl, New Rectangle(0, 0, bmp.Width, bmp.Height)
    4. End Using

    Ausserdem Option Struct On!
    Funktioniert jetzt! War ja total blöd was ich gemacht hab und vorallem das es das ja gar nicht übernommen hatte ._. erst nach dem ich Pb1.Image = bmp gesetzt hab hat sich der Filter aktiviert aber jetzt Tip Top !


    Lern am Besten erstmal ein wenig die Sprache kennen und dann kannst du dich an Größeres heranwagen.


    :) Danke für die Tolle unterstützung vorallem da ich ja wirklich neu bin ^^!

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim bmp = New Bitmap(Pb1.Image)
    3. Using hsl As New HueSaturationLuminance()
    4. hsl.SaturationLevel = -100
    5. GdiPlusExtensions.ApplyEffect(bmp, hsl, New Rectangle(0, 0, bmp.Width, bmp.Height))
    6. End Using
    7. Pb1.Image = bmp
    8. End Sub

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Zcared“ ()

    Das andere hat gut funktioniert aber wenn ich das mit dem Import mache so wie dus gesagt hast und meinen code

    VB.NET-Quellcode

    1. Dim bmp As Bitmap
    2. Using hsl As New HueSaturationLuminance()
    3. hsl.SaturationLevel = -100
    4. bmp.ApplyEffect(hsl, New Rectangle(0, 0, bmp.Width / 2, bmp.Height))
    5. End Using


    Habe Bekomme ich "Die Variable "bmp" verbirgt eine Variable in einem einschließenden Block"
    und Fehler 2 "Option Strict On" lässt keine impliziten Konvertierungen von Double in Integer zu"



    ***Edit***
    Habs hinbekommen :)

    VB.NET-Quellcode

    1. Dim bmp = New Bitmap(Pb1.Image)
    2. If cbSchwaWei.Checked = True Then
    3. Using hsl As New HueSaturationLuminance()
    4. hsl.SaturationLevel = -100
    5. bmp.ApplyEffect(hsl, New Rectangle(0, 0, CInt(bmp.Width), bmp.Height))
    6. Pb1.Image = bmp
    7. End Using

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Zcared“ ()

    Hoi Hoi melde mich zurück,
    habe versucht den Filter, samt GDIPeffects, auf mein Videoprojekt zu übertragen. alles wie gehabt importiert. Optionstrict on.
    und jetzt become ich folgende FEhlermeldung

    "Warnung 1 Konflikt zwischen Prozessorarchitektur des Projekts "MSIL", das erstellt wird, und der Prozessorarchitektur des Verweises, "GdipEffects", "x86". Dieser Konflikt kann zu Laufzeitfehlern führen. Ändern Sie ggf. mithilfe des Konfigurations-Managers die als Ziel angegebene Prozessorarchitektur Ihres Projekts so, dass die Prozessorarchitekturen zwischen Ihrem Projekt und den Verweisen ausgerichtet werden, oder wählen Sie eine Abhängigkeit von Verweisen mit einer Prozessorarchitektur, die der als Ziel angegebene Prozessorarchitektur Ihres Projekts entspricht. Bewegungserkenner"

    gelesen habe ich das ich die EXE anstatt mit "AnyCPU" mit "x86" übersetze.