Vb.net 6读取带有memorystream的Byte()数组中的图像时出现奇怪的零值

Vb.net 6读取带有memorystream的Byte()数组中的图像时出现奇怪的零值,vb.net,Vb.net,我用内存流将位图(6px,一行3个)转换为Byte()-数组。 当我在DataGridView中显示值时,thera是6个奇怪的零值 这张图片将描述我的意思 在表示位图文件的数组中设置一个固定位置,试图从该位图中提取什么?如果您想要解析颜色值,请使用。顺便说一句,BMP格式中唯一的固定位置在字节0和字节21之间(这只是基本BMP格式)。只有3个“奇怪”零。谷歌“位图跨步”要想领先,位图中的扫描线长度总是4字节的倍数。对齐行首可以在32位处理器上高效读取位图。24bpp的3个像素为3*3=9字节

我用内存流将位图(6px,一行3个)转换为Byte()-数组。 当我在DataGridView中显示值时,thera是6个奇怪的零值

这张图片将描述我的意思


在表示位图文件的数组中设置一个固定位置,试图从该位图中提取什么?如果您想要解析颜色值,请使用。顺便说一句,BMP格式中唯一的固定位置在字节
0
和字节
21
之间(这只是基本BMP格式)。只有3个“奇怪”零。谷歌“位图跨步”要想领先,位图中的扫描线长度总是4字节的倍数。对齐行首可以在32位处理器上高效读取位图。24bpp的3个像素为3*3=9字节,需要3个额外的填充字节才能使步幅达到12。接下来的2个零属于一个红色像素,编码为little endian RGB,bb gg rr,so(0,0,255)。在表示位图文件的数组中设置固定位置,您试图从该位图中提取什么?如果您想要解析颜色值,请使用。顺便说一句,BMP格式中唯一的固定位置在字节
0
和字节
21
之间(这只是基本BMP格式)。只有3个“奇怪”零。谷歌“位图跨步”要想领先,位图中的扫描线长度总是4字节的倍数。对齐行首可以在32位处理器上高效读取位图。24bpp的3个像素为3*3=9字节,需要3个额外的填充字节才能使步幅达到12。接下来的2个零属于一个红色像素,编码为小端RGB,bb gg rr,so(0,0,255)。
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\TestMap.bmp")

        Dim bitmapBytes As Byte()

        Using stream As New System.IO.MemoryStream
            Bild.Save(stream, Bild.RawFormat)
            bitmapBytes = stream.ToArray
        End Using

        Dim bytes2(250, 250) As Byte
        Dim zeilen As Integer = 0
        Dim spalten As Integer = 0
        Dim index As Integer = 54
        Dim triplet As String = Nothing

        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