我在显示图像时遇到问题,它的字节作为数据块进入我的 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();
}
}
像这样的东西应该将所有数据放入一个数组中,然后您可以对该数据进行操作。从那里开始,以您想要的任何方式显示数据应该是一个相对直接的问题。