zoukankan      html  css  js  c++  java
  • DxPackNet 2.视频截图和捕捉帧图片

    在上一节的基础上 打开了摄像头后:

    1.视频截图------调用  CatchBmp 方法即可获取当前帧的 bmp 图像,

               //调用截屏函数 获取当前图片
                Bitmap bmp = camCapture.CatchBmp();
                if (bmp != null)
                {
                    pictureBox1.Image = bmp;
                }

    2.帧捕获-----给设备类型加上捕获帧数据的回调函数,即可不断的获取所有输出的帧数据

            private void Form1_Load(object sender, EventArgs e)
            {
                cameras = DxFactory.CreateDxCompent<DxDeviceCollection>(DxDeviceCollection.EnvironmentCameras);
                camCapture = DxFactory.CreateDxCompent<IDxCameraCapture>(this, panel1);
                camCapture.FrameCb = camerasFrameCb;//注意 这里加的帧数据回调函数
                camCapture.Init(cameras[0]);
            }

    下面是回调处理代码 ,在回调中通过 BmpFromBuffer 方法将帧数据还原成了bmp图片

            private void camerasFrameCb(byte[] buffer, int size)
            {
                //注意-这里必须把数据拿到创建控件的线程上处理
                this.BeginInvoke(new camerasFrameCbHandler(_camerasFrameCb), buffer, size);
            }
            delegate void camerasFrameCbHandler(byte[] buffer, int size);
            public void _camerasFrameCb(byte[] buffer, int size)
            {
                //根据数据流获取适配的bmp图片对象
                Bitmap bmp = camCapture.BmpFromBuffer(buffer, size);
                if (bmp != null)
                {
                    Image oimg = pictureBox1.Image;
                    pictureBox1.Image = bmp;
                    if (oimg != null) oimg.Dispose();
                }
            }

     截图源代码  CameraShot.zip

    帧捕捉源代码 CamFrameCallBack.zip

  • 相关阅读:
    Ajax(三)
    Ajax(二)
    Django(四)
    Ajax(一)
    Django(三)
    Django(二)
    Django(一)
    Http协议
    Bootstrap
    python 绑定方法
  • 原文地址:https://www.cnblogs.com/dint/p/8418788.html
Copyright © 2011-2022 走看看