Пример #1
0
        /// <summary>
        /// 开启摄像头
        /// </summary>
        public void StartWebCam()
        {
            var lpszName = new byte[100];
            var lpszVer  = new byte[100];

            AviCapture.capGetDriverDescriptionA(1, lpszName, 100, lpszVer, 100);
            this._lwndC = AviCapture.capCreateCaptureWindowA(lpszName, AviCapture.WsVisible + AviCapture.WsChild, 0, 0, _mWidth, _mHeight, _mControlPtr, 0);

            if (this.CapDriverConnect(this._lwndC, 0))
            {
                this.CapPreviewRate(this._lwndC, 66);

                this.CapPreview(this._lwndC, true);
                this.CapOverlay(this._lwndC, true);
                var bitmapinfo = new AviCapture.Bitmapinfo();
                bitmapinfo.bmiHeader.biSize     = AviCapture.SizeOf(bitmapinfo.bmiHeader);
                bitmapinfo.bmiHeader.biWidth    = this._mWidth;
                bitmapinfo.bmiHeader.biHeight   = this._mHeight;
                bitmapinfo.bmiHeader.biPlanes   = 1;
                bitmapinfo.bmiHeader.biBitCount = 24;
                this.CapSetVideoFormat(this._lwndC, ref bitmapinfo, AviCapture.SizeOf(bitmapinfo));

                this._mFrameEventHandler = new AviCapture.FrameEventHandler(FrameCallBack);
                this.CapSetCallbackOnFrame(this._lwndC, this._mFrameEventHandler);
                AviCapture.SetWindowPos(this._lwndC, 0, 0, 0, _mWidth, _mHeight, 6);
            }
        }
Пример #2
0
        /// <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);

            if (this.capDriverConnect(this.lwndC, 0))
            {
                this.capPreviewRate(this.lwndC, 66);

                this.capPreview(this.lwndC, true);
                this.capOverlay(this.lwndC, true);
                AviCapture.BITMAPINFO bitmapinfo = new AviCapture.BITMAPINFO();
                bitmapinfo.bmiHeader.biSize     = AviCapture.SizeOf(bitmapinfo.bmiHeader);
                bitmapinfo.bmiHeader.biWidth    = this.mWidth;
                bitmapinfo.bmiHeader.biHeight   = this.mHeight;
                bitmapinfo.bmiHeader.biPlanes   = 1;
                bitmapinfo.bmiHeader.biBitCount = 24;
                this.capSetVideoFormat(this.lwndC, ref bitmapinfo, AviCapture.SizeOf(bitmapinfo));

                this.mFrameEventHandler = new AviCapture.FrameEventHandler(FrameCallBack);
                this.capSetCallbackOnFrame(this.lwndC, this.mFrameEventHandler);
                AviCapture.SetWindowPos(this.lwndC, 0, 0, 0, mWidth, mHeight, 6);
            }
        }
Пример #3
0
        /// <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);

            if (this.capDriverConnect(this.lwndC, 0))
            {
                this.capPreviewRate(this.lwndC, 66);

                this.capPreview(this.lwndC, true);
                this.capOverlay(this.lwndC, true);
                AviCapture.BITMAPINFO bitmapinfo = new AviCapture.BITMAPINFO();
                bitmapinfo.bmiHeader.biSize = AviCapture.SizeOf(bitmapinfo.bmiHeader);
                bitmapinfo.bmiHeader.biWidth = this.mWidth;
                bitmapinfo.bmiHeader.biHeight = this.mHeight;
                bitmapinfo.bmiHeader.biPlanes = 1;
                bitmapinfo.bmiHeader.biBitCount = 24;
                this.capSetVideoFormat(this.lwndC, ref bitmapinfo, AviCapture.SizeOf(bitmapinfo));

                this.mFrameEventHandler = new AviCapture.FrameEventHandler(FrameCallBack);
                this.capSetCallbackOnFrame(this.lwndC, this.mFrameEventHandler);
                AviCapture.SetWindowPos(this.lwndC, 0, 0, 0, mWidth, mHeight, 6);
            }
        }
Пример #4
0
 private bool CapSetCallbackOnFrame(IntPtr lwnd, AviCapture.FrameEventHandler lpProc)
 {
     return(AviCapture.SendMessage(lwnd, AviCapture.WmCapSetCallbackFrame, 0, lpProc));
 }
Пример #5
0
 private bool capSetCallbackOnFrame(IntPtr lwnd, AviCapture.FrameEventHandler lpProc)
 {
     return(AviCapture.SendMessage(lwnd, AviCapture.WM_CAP_SET_CALLBACK_FRAME, 0, lpProc));
 }