Vb.net 6读取带有memorystream的Byte()数组中的图像时出现奇怪的零值
我用内存流将位图(6px,一行3个)转换为Byte()-数组。 当我在DataGridView中显示值时,thera是6个奇怪的零值 这张图片将描述我的意思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字节
在表示位图文件的数组中设置一个固定位置,试图从该位图中提取什么?如果您想要解析颜色值,请使用。顺便说一句,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