如果一个发送器要发送4k的数据,而串口一次接收32字节的数据,如何将这些字节保存在同一个内存流中



我在显示图像时遇到问题,它的字节作为数据块进入我的 pc 串行端口,一次 32 个字节,如何将所有传入字节保留在同一内存流中,那么如何在图片框中显示此图像

这是一段代码

if (((int)header[0] == 0x76) && (header[1] == 0x00) && (header[2] == 0x32) && (header[3] == 0x00) && (header[4] == 0x00)) /// the header is true ,read the image bytes
{
    for (int i = 0; i < 32; i++)
        Jpg[i] = (byte)CamPort.ReadByte();
    fs.Write(Jpg, 0, Jpg.Length);
    for (int i = 1; i < Jpg.Length; i++)
    {
        if ((Jpg[i - 1] == 0xFF) && (Jpg[i - 0] == 0xD9))// reaching the last two bytes(FF D9) of Jpg //
        {
            EndFlag = true;
            MessageBox.Show("done");
            //OneSnap.Image = Image.FromStream(fs);
            fs.Close();
        }
    }
}
else
{
    MessageBox.Show("DONE");
}

我只会使用嵌套循环,一次向更大的数组添加 32 个字节。

int offset = 0;
for(int i = 0; i < total; i++){
    for(int j = 0; j < 32; j++){
        offset = i * 32;
        jpg[offset + j] = (byte)CamPort.ReadByte();
    }
 }

像这样的东西应该将所有数据放入一个数组中,然后您可以对该数据进行操作。从那里开始,以您想要的任何方式显示数据应该是一个相对直接的问题。

最新更新