談笑有鴻儒,往來無白丁

          在恰當(dāng)?shù)臅r間、地點以恰當(dāng)?shù)姆绞奖磉_(dá)給恰當(dāng)?shù)娜?..  閱讀的時候請注意分類,佛曰我日里面是談笑文章,其他是各個分類的文章,積極的熱情投入到寫博的隊伍中來,支持blogjava做大做強!向dudu站長致敬>> > 我的微博敬請收聽
          1、聲明必要的變量

          ? hWndC : THandle;
          ? CapturingAVI : bool;

          2、定義消息

          const WM_CAP_START = WM_USER;
          const WM_CAP_STOP = WM_CAP_START + 68;
          const WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10;
          const WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11;
          const WM_CAP_SAVEDIB = WM_CAP_START + 25;
          const WM_CAP_GRAB_FRAME = WM_CAP_START + 60;
          const WM_CAP_SEQUENCE = WM_CAP_START + 62;
          const WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START + 20;
          const WM_CAP_SEQUENCE_NOFILE =WM_CAP_START+? 63 ;
          const WM_CAP_SET_OVERLAY =WM_CAP_START+? 51 ;
          const WM_CAP_SET_PREVIEW =WM_CAP_START+? 50 ;
          const WM_CAP_SET_CALLBACK_VIDEOSTREAM = WM_CAP_START +6;
          const WM_CAP_SET_CALLBACK_ERROR=WM_CAP_START +2;
          const WM_CAP_SET_CALLBACK_STATUSA= WM_CAP_START +3;
          const WM_CAP_SET_CALLBACK_FRAME= WM_CAP_START +5;
          const WM_CAP_SET_SCALE=WM_CAP_START+? 53 ;
          const WM_CAP_SET_PREVIEWRATE=WM_CAP_START+? 52 ;

          3、聲明函數(shù)

          function capCreateCaptureWindowA(lpszWindowName : PCHAR;
          dwStyle : longint;
          x : integer;
          y : integer;
          nWidth : integer;
          nHeight : integer;
          ParentWin : HWND;
          nId : integer): HWND;
          STDCALL EXTERNAL 'AVICAP32.DLL';

          4、FormCreate

          CapturingAVI := false;
          hWndC := 0;
          SaveDialog1.Options :=
          [ofHideReadOnly, ofNoChangeDir, ofPathMustExist]

          5、開始顯示OpenVideo

          hWndC := capCreateCaptureWindowA('My Own Capture Window',
          WS_CHILD or WS_VISIBLE ,
          Panel1.Left,
          Panel1.Top,
          Panel1.Width,
          Panel1.Height,
          Form1.Handle,
          0);
          if hWndC <> 0 then
          SendMessage(hWndC, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 0);
          SendMessage(hWndC, WM_CAP_SET_CALLBACK_ERROR, 0, 0);
          SendMessage(hWndC, WM_CAP_SET_CALLBACK_STATUSA, 0, 0);
          SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);
          SendMessage(hWndC, WM_CAP_SET_SCALE, 1, 0);
          SendMessage(hWndC, WM_CAP_SET_PREVIEWRATE, 66, 0);
          SendMessage(hWndC, WM_CAP_SET_OVERLAY, 1, 0);
          SendMessage(hWndC, WM_CAP_SET_PREVIEW, 1, 0);
          OpenVideo.Enabled :=false;

          6、CloseVideo

          if hWndC <> 0 then begin
          SendMessage(hWndC, WM_CAP_DRIVER_DISCONNECT, 0, 0);
          hWndC := 0;
          OpenVideo.Enabled :=true;
          end;

          7、SaveBMP

          if hWndC <> 0 then begin
          SaveDialog1.DefaultExt := 'bmp';
          SaveDialog1.Filter := 'Bitmap files (*.bmp)|*.bmp';
          if SaveDialog1.Execute then
          SendMessage(hWndC,
          WM_CAP_SAVEDIB,
          0,
          longint(pchar(SaveDialog1.FileName)));
          end;

          8、StartAVI

          if hWndC <> 0 then begin
          SaveDialog1.DefaultExt := 'avi';
          SaveDialog1.Filter := 'AVI files (*.avi)|*.avi';
          if SaveDialog1.Execute then begin
          CapturingAVI := true;
          SendMessage(hWndC,
          WM_CAP_FILE_SET_CAPTURE_FILEA,
          0,
          Longint(pchar(SaveDialog1.FileName)));
          SendMessage(hWndC, WM_CAP_SEQUENCE, 0, 0);
          end;
          end;

          9、StopAVI

          if hWndC <> 0 then begin
          SendMessage(hWndC, WM_CAP_STOP, 0, 0);
          CapturingAVI := false;
          end;

          10、FormClose
          CloseVideo;

          注意上面的前提是需要安裝攝像頭的驅(qū)動程序。

          http://www.aygfsteel.com/badboyryan



          posted on 2007-06-29 15:15 壞男孩 閱讀(6061) 評論(0)  編輯  收藏 所屬分類: 生活隨筆
          主站蜘蛛池模板: 贵德县| 塔城市| 乌海市| 台安县| 新平| 普安县| 定兴县| 崇阳县| 怀化市| 任丘市| 德惠市| 集贤县| 内江市| 都江堰市| 榆林市| 甘泉县| 潼关县| 龙口市| 彩票| 久治县| 玉溪市| 资阳市| 松溪县| 台北市| 隆安县| 苏尼特右旗| 昌吉市| 临武县| 和林格尔县| 称多县| 黑龙江省| 汉中市| 内丘县| 余江县| 德格县| 屯门区| 牙克石市| 台州市| 玉山县| 遂溪县| 湘乡市|