vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Bild invertieren 
Autor: jan88
Datum: 28.12.11 12:39

Habe jetzt wohl eine Loesung gefunden:
Sub invert()
        Dim b As Bitmap = pb.Image
        Dim x, y As Integer
        Dim bmpData As BitmapData
        Dim p As Byte
        Dim ptr As IntPtr
        Dim offset As Integer
        Dim lineoffs As Integer
        bmpData = b.LockBits(New Rectangle(0, 0, b.Width, b.Height), _
          ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb)
        lineoffs = bmpData.Stride - b.Width * 3
        ptr = bmpData.Scan0
        offset = 0
        For y = 0 To b.Height - 1
            For x = 0 To b.Width - 1
                p = 255 - Marshal.ReadByte(ptr, offset)
                Marshal.WriteByte(ptr, offset, p)
                offset += 1
                p = 255 - Marshal.ReadByte(ptr, offset)
                Marshal.WriteByte(ptr, offset, p)
                offset += 1
                p = 255 - Marshal.ReadByte(ptr, offset)
                Marshal.WriteByte(ptr, offset, p)
                offset += 1
            Next
            offset += lineoffs
        Next
        b.UnlockBits(bmpData)
        pb.Refresh()
    End Sub
Jetzt ist das Ergebnis wie gewuenscht, so ganz verstehen tu ich das allerdings nicht.

Zu der Stride-Eigenschaft hab ich das gefunden:
Ein Schritt ist die Breite einer einzelnen Zeile von Pixeln (einer Scanzeile), aufgerundet auf eine 4-Byte-Begrenzung. Wenn der Schritt postitiv ist, verlaeuft die Bitmap von oben nach unten. Wenn der Schritt negativ ist, verlaeuft die Bitmap von unten nach oben.

Vielleicht kennt sich ja jemand damit aus, der das etwas genauer erklaern kann.
Schonmal danke dafuer
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Bild invertieren2.072jan8828.12.11 11:22
Re: Bild invertieren1.410ModeratorDaveS28.12.11 11:36
Re: Bild invertieren1.424jan8828.12.11 12:02
Re: Bild invertieren1.448jan8828.12.11 12:39
Re: Bild invertieren1.464Preisser28.12.11 13:46
Re: Bild invertieren1.385jan8828.12.11 14:46
Re: Bild invertieren1.461Manfred X28.12.11 14:56
Re: Bild invertieren1.546Preisser28.12.11 16:01
Re: Bild invertieren1.409Manfred X28.12.11 16:48
Re: Bild invertieren1.430Manfred X28.12.11 14:21
Re: Bild invertieren1.399jan8828.12.11 15:46
Re: Bild invertieren1.446jan8830.12.11 20:30
Re: Bild invertieren1.441Preisser30.12.11 20:39
Re: Bild invertieren1.385jan8830.12.11 20:58
Re: Bild invertieren1.416Manfred X31.12.11 09:22

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel