Aufhellen und Bunt zu SchwarzWeiss Konvertierung eines Bildes

    • VB.NET

    Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von picoflop.

      Aufhellen und Bunt zu SchwarzWeiss Konvertierung eines Bildes

      Ich fange mal mit dem umwandeln eines Bildes in Schwarzweiss an: ist eigentlich nicht schwer der code:

      VB.NET-Quellcode

      1. Function colortowhiteblack(ByVal col As Color)
      2. Dim m As Integer = CInt((CInt(col.R) + CInt(col.G) + CInt(col.B)) / 3)
      3. Return color.FromArgb(m, m, m)
      4. End Function
      5. Function blackwhite(ByVal img As Bitmap)
      6. Dim imgn As New Bitmap(img.Width, img.Height)
      7. For x As Integer = 0 To img.Width - 1
      8. For y As Integer = 0 To img.Height - 1
      9. imgn.SetPixel(x, y, colortowhiteblack(img.GetPixel(x, y)))
      10. Next
      11. Next
      12. Return imgn
      13. End Function


      der Aufruf könnte z.B. folgender sein:

      VB.NET-Quellcode

      1. Me.PictureBox1.Image = blackwhite(Me.PictureBox1.Image)


      Ein nachteil dieser Funktion wo ich auch gerade dran bin ist, dass es je nach bildgröße ziemlich lange dauert, bis alle Pixel verarbeitet sind!

      Jetzt das auf oder abhellen eines bildes:

      VB.NET-Quellcode

      1. Function dimmcolor(ByVal parameter As Integer, ByVal down As Integer)
      2. If parameter - down < 0 Then
      3. parameter = 0
      4. ElseIf parameter - down > 255 Then
      5. parameter = 255
      6. Else
      7. parameter = parameter - down
      8. End If
      9. Return parameter
      10. End Function
      11. Function dimm(ByVal img As Bitmap, ByVal variable As Integer)
      12. Dim imgn As New Bitmap(img.Width, img.Height)
      13. Try
      14. For x As Integer = 0 To img.Width - 1
      15. For y As Integer = 0 To img.Height - 1
      16. imgn.SetPixel(x, y, Color.FromArgb(dimmcolor(img.GetPixel(x, y).R, variable), dimmcolor(img.GetPixel(x, y).G, variable), dimmcolor(img.GetPixel(x, y).B, variable)))
      17. Next
      18. Next
      19. Catch ex As Exception
      20. Me.Text = ex.ToString
      21. End Try
      22. Return imgn
      23. End Function

      Der Aufruf:

      VB.NET-Quellcode

      1. Me.PictureBox1.Image = dimm(Me.PictureBox1.Image, 60)


      Ich werde in zukünftiger Zeit noch versuchen die Schnelligkeit zu optimieren!