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-2024
 
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 invertieren1.953jan8828.12.11 11:22
Re: Bild invertieren1.370ModeratorDaveS28.12.11 11:36
Re: Bild invertieren1.376jan8828.12.11 12:02
Re: Bild invertieren1.406jan8828.12.11 12:39
Re: Bild invertieren1.426Preisser28.12.11 13:46
Re: Bild invertieren1.346jan8828.12.11 14:46
Re: Bild invertieren1.423Manfred X28.12.11 14:56
Re: Bild invertieren1.502Preisser28.12.11 16:01
Re: Bild invertieren1.366Manfred X28.12.11 16:48
Re: Bild invertieren1.387Manfred X28.12.11 14:21
Re: Bild invertieren1.357jan8828.12.11 15:46
Re: Bild invertieren1.399jan8830.12.11 20:30
Re: Bild invertieren1.401Preisser30.12.11 20:39
Re: Bild invertieren1.348jan8830.12.11 20:58
Re: Bild invertieren1.373Manfred 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-2024 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