Yuebon.NetCore/Yuebon.Commons/Device/Camera.cs

(开头部分) 12KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

namespace Yuebon.Commons.Device
{
    /// <summary>
    /// 摄像头操作辅助类,包括开启、关闭、抓图、设置等功能
    /// </summary>
    public class Camera
    {
        private IntPtr lwndC;
        private IntPtr mControlPtr;
        private int mWidth;
        private int mHeight;

        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="handle"></param>
        /// <param name="width"></param>
        /// <param name="height"></param>
        public Camera(IntPtr handle, int width, int height)
        {
            mControlPtr = handle;
            mWidth = width;
            mHeight = height;
        }

        /// <summary>
        /// 帧回调的委托
        /// </summary>
        /// <param name="data">数据</param>
        public delegate void RecievedFrameEventHandler(byte[] data);
        /// <summary>
        /// 帧回调事件处理
        /// </summary>
        public event RecievedFrameEventHandler RecievedFrame;
        private AviCapture.FrameEventHandler mFrameEventHandler;

        /// <summary>
        /// 关闭摄像头
        /// </summary>
        public void CloseWebcam()
        {
            this.capDriverDisconnect(this.lwndC);
        }

        /// <summary>
        /// 开启摄像头
        /// </summary>
        public void StartWebCam()
        {
            byte[] lpszName = new byte[100];
            byte[] lpszVer = new byte[100];

            AviCapture.capGetDriverDescriptionA(1, lpszName, 100, lpszVer, 100);
            this.lwndC = AviCapture.capCreateCaptureWindowA(lpszName, AviCapture.WS_VISIBLE + AviCapture.WS_CHILD, 0, 0, mWidth, mHeight, mControlPtr, 0);

后面还有 279 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。