Hallo zusammen,
ich habe ein kleines Projekt (Option Strict ON) in dem ich mit Hilfe eines MemoryStreams eine Bitmap in ein eindimensionales Array lese. Aus diesem Array heraus zeige ich die Daten (momen nur die Farbwerte) in einem DataGridView an.
Das funktioniert bis hierher auch sehr gut.
Meine Testmap besteht aus 6 Pixeln in der 1. Zeile 3 Rotwerte ({255, 0, 0},{200, 0, 0}, {100, 0, 0}) in der 2. Zeile 3 Pixel mit dem gleichen Grünwert ({0, 255, 0}, {0, 255, 0}, {0, 255, 0}).
In meinem Array bitmapBytes stehen die Farbwerte von unten nach oben d.h. es wird mit dem letzten Pixel der Bmp. angefangen und mit dem ersten Pixel der Bmp mit dem Einlesen aufgehört, da es sich um eine BottomUp Bitmap handelt (BitmapHeader Beschreibung WiKi).
de.wikipedia.org/wiki/Windows_Bitmap
Soweit ist mir alles klar aber es erscheinen 5 Nullen zwischen den Farbwerten der beiden Zeilen und eine am Ende die da eigentlich nicht hingehören. Hängt das mit dem Stream zusammen? Oder Baut MSPaint, das ich zur Erstellung der 6 Pixel benutzt habe Mist? Natürlich habe ich auch die Forensuche und Dr. Google genutzt, das Ein-und Auslesen vom Bmp's in Byte-Arrays ist auch häufiger ein Thema aber die Sache mit den Nullen hab ich bisher noch nicht gefunden.
Ich habe zum besseren verständnis ein Bild angehängt:
Und das ist mein Code:
Das kleine Projekt hab ich ebenfalls angehängt!
Hoffentlich könnt Ihr mir erklären wo die Nullen herkommen und was ich dagegen tun kann!
Vielen Dank für Eure Mühe und Hilfe vorab ,
Duster
ich habe ein kleines Projekt (Option Strict ON) in dem ich mit Hilfe eines MemoryStreams eine Bitmap in ein eindimensionales Array lese. Aus diesem Array heraus zeige ich die Daten (momen nur die Farbwerte) in einem DataGridView an.
Das funktioniert bis hierher auch sehr gut.
Meine Testmap besteht aus 6 Pixeln in der 1. Zeile 3 Rotwerte ({255, 0, 0},{200, 0, 0}, {100, 0, 0}) in der 2. Zeile 3 Pixel mit dem gleichen Grünwert ({0, 255, 0}, {0, 255, 0}, {0, 255, 0}).
In meinem Array bitmapBytes stehen die Farbwerte von unten nach oben d.h. es wird mit dem letzten Pixel der Bmp. angefangen und mit dem ersten Pixel der Bmp mit dem Einlesen aufgehört, da es sich um eine BottomUp Bitmap handelt (BitmapHeader Beschreibung WiKi).
de.wikipedia.org/wiki/Windows_Bitmap
Soweit ist mir alles klar aber es erscheinen 5 Nullen zwischen den Farbwerten der beiden Zeilen und eine am Ende die da eigentlich nicht hingehören. Hängt das mit dem Stream zusammen? Oder Baut MSPaint, das ich zur Erstellung der 6 Pixel benutzt habe Mist? Natürlich habe ich auch die Forensuche und Dr. Google genutzt, das Ein-und Auslesen vom Bmp's in Byte-Arrays ist auch häufiger ein Thema aber die Sache mit den Nullen hab ich bisher noch nicht gefunden.
Ich habe zum besseren verständnis ein Bild angehängt:
Und das ist mein Code:
VB.NET-Quellcode
- Option Strict On
- Imports System.IO
- Public Class Form1
- Private Sub CmdEinlesen_Click(sender As Object, e As EventArgs) Handles CmdEinlesen.Click
- Dim Bild As Image = Image.FromFile("D:\PROGRAMMIERUNG\VISUAL_STUDIO\VISUAL_BASIC\DATA_GRID_VIEW\Dgv_Bmp_2DimArray\TestMap5.bmp")
- Dim bitmapBytes As Byte()
- Using stream As New System.IO.MemoryStream
- Bild.Save(stream, Bild.RawFormat)
- bitmapBytes = stream.ToArray
- End Using
- For i As Integer = 54 To bitmapBytes.Length - 1
- DgvDaten.Rows.Add({bitmapBytes(i)})
- Next
- End Sub
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- For spalte As Integer = 0 To 23
- DgvDaten.Columns.Add("Spalte" & (spalte + 1), "Spalte" & (spalte + 1))
- Next
- End Sub
- End Class
Das kleine Projekt hab ich ebenfalls angehängt!
Hoffentlich könnt Ihr mir erklären wo die Nullen herkommen und was ich dagegen tun kann!
Vielen Dank für Eure Mühe und Hilfe vorab ,
Duster