繁体   English   中英

图片盒中的视频C#

[英]Video in picturebox c#

我在第二种形式的图片框中检索视频时遇到问题。 这是我的代码

Main.cs

  private void start_video()
    {

        while (!needClose)
        {
            video.capture();
            pictureBox1.Image = ImageFrame.video;
        }
    }


    private void button1_Click(object sender, EventArgs e)
    {
        camera = new Camera();
        camera.Show();
    }

这是我的课程(当然有设置视频的功能)

  public class ImageFrame
  {
   public static Image video { get; set; }
  }

这是我的Camera.cs

 public partial class Camera : Form
{
    private bool test = false;

    public Camera()
    {
        InitializeComponent();
        returnVideo();
    }

   private void returnVideo()
    {
        while (!test)
        {
            pictureBox2.Image = ImageFrame.video;
        }
    }

该视频在pictureBox1中可以正常工作,但是当我单击button1打开新窗体时,检索到pictureBox1的同一视频只是冻结了。 为什么? 如果我不使用那一会儿,它只会显示一帧,但是我需要视频(来自摄像机,因此是实时取景)。

这会阻止事件循环运行,因此在每次更改窗口时,UI更新都会停止并因此冻结。

    while (!test) // = while(true)
    {
        pictureBox2.Image = ImageFrame.video;
    }

使用计时器每隔50毫秒或更短时间更新一次图片。

编辑:一些伪代码:

timer1.Interval=50;
timer1.Tick+=timer1_Tick;
timer1.Start();

void timer1_Tick(..)
{
  pictureBox2.Image = ImageFrame.video;
}

这也减少了CPU负载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM