大佬教程收集整理的这篇文章主要介绍了来自IP cam C#的流,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
public Thread _camThread; private String camUrl = "http://my-domain-ip:2080/videostream.cgi?user=admin&pwd=password"; public httpWebrequest webReq; public WebResponse webRes; public Stream sr; private void btnStart_Click(object sender,EventArgs E) { if (_camThread == null) _camThread = new Thread(new ThreadStart(RunCam)); _camThread.Start(); } private void RunCam() { try { webReq = (httpWebrequest)Webrequest.Create(camUrl); webReq.AllowWriteStreamBuffering = true; webReq.Timeout = 20000; using (webRes = webReq.GetResponse()) { while ((sr = webRes.GetResponseStream()) != null) { image.Image = Image.FromStream(sr); } } } catch (Exception eX) { messageBox.Show(ex.messagE); } } private void btnStop_Click(object sender,EventArgs E) { if (_camThread.IsAlivE) { _camThread.abort(); _camThread = null; } }
您可能无法直接将响应流传递给Image.FromStream – 图像可能以多部分响应进行编码,该响应将图像与文本分隔符分开.您可以在RFC2046了解有关多部分响应格式的更多信息.
using (webRes = webReq.GetResponse()) { using (sr = webRes.GetResponseStream()) { // conTinuously read images from the response stream until error while (true) { try { // note: the line below probably won't work,you may need to parse // the next image from the multi-part response stream manually image.Image = Image.FromStream(sr); // if the above doesn't work,then do something like this: // var imageBytes = ParseNextImage(sr); // var memoryStream = new MemoryStream(imageBytes); // image.Image = Image.FromStream(memoryStream); } catch(Exception E) { Console.WriteLine("AborTing read from response stream due to error {0}",E); break; } } } }
以上是大佬教程为你收集整理的来自IP cam C#的流全部内容,希望文章能够帮你解决来自IP cam C#的流所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。