STM32采集ov2640的视频图像,串口WiFi传输JPEG视频图像
思路是上位机解析一帧一帧的图像,通过picturebox显示图像,加定时器刷新的方法实现实时显示。后边我在网上找了一下资料,有的说可以用JPEG流处理的方式,循环接收数据,放在流当中显示,
public void RC()
{
/************************************************************************/
/* 接收方为服务器端,监听,等待客户端发送图片,并作显示 */
/************************************************************************/
Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
EndPoint point = new IPEndPoint(IPAddress.Any, 10000);
sock.Bind(point);
sock.Listen(10);
while (true)
{
Socket client = sock.Accept();
byte[] bitLen=new byte[8];
client.Receive(bitLen,bitLen.Length,SocketFlags.None);
//第一步接收文件的大小
long contentLen = BitConverter.ToInt64(bitLen,0);
int size = 0;
MemoryStream ms = new MemoryStream();
//循环接收文件的内容,如果接收完毕,则break;
while (size<contentLen)
{
//分多次接收,每次接收256个字节,
byte[] bits = new byte[256];
int r = client.Receive(bits, bits.Length, SocketFlags.None);
if (r <= 0) break;
ms.Write(bits,0,r);
size += r;
}
client.Close();
//接收到就显示,然后关闭当前连接,继续监听
wangle(ms);
}
}
public void wangle(MemoryStream ms)
{
Image img = Image.FromStream(ms);
picBox.Image = null;
picBox.Image = img;
}
我用这个调试之后图像只能显示顶头大概三四行的数据,然后会上位机卡掉,求教解决方法,谢谢了