微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从实时HTML视频源更新GUI上的Winforms图片框?

如何解决如何从实时HTML视频源更新GUI上的Winforms图片框?

运行代码时,我不断收到“参数无效”错误或内存泄漏(图片未更新)。我正在尝试使用AForge.Net从本地IP摄像机获取帧。我得到的确切错误代码是:

“在System.Drawing.dll中发生了'System.ArgumentException'类型的未处理异常 参数无效。”

在我的代码中, Feed 是winforms图片框的名称

        private void Form1_Load(object sender,EventArgs e) {
            Console.WriteLine(camaddress);
            stream.source = camaddress;
            stream.Login = camUser;
            stream.Password = camPass;
            stream.Start();
            //PictureBox.CheckForIllegalCrossthreadCalls = false;
            CaptureCamera();
            isCameraRunning = true;
        }

        private void CaptureCamera() {
            try {
                camera = new Thread(new ThreadStart(CaptureCameraCallback));
                camera.Start();
            } catch (Exception e) {
                Debug.Write("Exception encountered trying to capture camera:\n" + e.ToString() + "\n");
            }
        }


        private void CaptureCameraCallback() {
            log.information("Camera Opened",testID);
            guiLogWrite("Camera Opened");
            while (stream.IsRunning) {
                stream.NewFrame += new NewFrameEventHandler(VideoStream_NewFrame);

            }
        }

         private void VideoStream_NewFrame(object sender,NewFrameEventArgs eventArgs) {
            try {
                //Image FrameData = new Bitmap(eventArgs.Frame);
                if (Feed.Image != null) Feed.Image.dispose();
                Bitmap FrameData = AForge.Imaging.Image.Clone(eventArgs.Frame);
                SetPicture(FrameData);
                FrameData.dispose();
            } catch { }
        }

        private void SetPicture(Image img) {
            if (this.Invokerequired) {
                this.Invoke(new MethodInvoker(delegate { SetPicture(img); }));
            } else {
                this.Feed.Image = img;
            }

这是我第一次在Stack Overflow上发帖,所以如果我忘记了什么,请告诉我。我花了几个小时研究其他stackoverflow线程,而Google试图找到一种解决方案。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。