Tool utama untuk bisa memanfaatkan VFW (Video for Windows) dalam delphi adalah unit VFW.pas, yaitu Delphi import unit for the VFW SDK hasil racikannya Ronald Dittrich dari http://www.swiftsoft.de. Kemudian dibumbui lagi oleh Ivo Steinmann, dan dalam project latihan ini, VFW.pas yang digunakan adalah yang terakhir diedit oleh Peter Haas, tanggal 2000-12-07. Keterangan lebih lengkap mengenai VFW baca aja di header unitnya ya ^_~.
Pada latihan ini, kita hanya akan memanfaatkan video capturenya saja, OK ? Mungkin lain kali kita buat video playernya.
Langkah-langkahnya sbb:
1. Buat project baru
2. Gunakan component sbb:
– Panel
– 3 buah Button
– Mainmenu
– SaveDialog
3. Buat variable FCapWnd bertype HandleWindow, dibagian Private;
FCapWnd: HWnd;
4. Tempatkan component seperti gambar berikut:
Pengaturan properties:
1. Properties Form1 atur sbb:
– BorderIcons = [biMinimize, biSystemMenu]
– BorderStyle = bsSingle
– Caption = Demo Video Capture
– Height = 345
– Menu = MainMenu1
– Name = frMain
– Width = 349
2. Properties Panel1 atur sbb:
– BevelInner = bvRaised
– BevelOuter = bvLowered
– Caption = not connected
– Height = 240
– Left = 8
– Top = 8
– Width = 320
3. Properties SaveDialog atur sbb:
– DefaultExt = jpg
– FileName = Capture.jpg
– Filter = JPEG (*.jpg)|*.jpg
– Options >> ofOverwritePrompt = True
– Title = Save JPEG
4. Properties Button1 atur sbb:
– Caption = Connect
– Left = 48
– Name = btnConnect
– Top = 256
5. Properties Button2 atur sbb:
– Caption = Disconnect
– Left = 128
– Name = btnDisconnect
– Top = 256
6. Properties Button3 atur sbb:
– Caption = Capture
– Left = 208
– Name = btnSave
– Top = 256
7. MainMenu1 isi dengan menu item sbb:
– &File
—-E&xit
– &Option
—-Video &Format
—-Video &Source
—-Video &Display
—-&Compression
Pengaturen Events
1. OnCreate dari frMain isi dengan:
SaveDialog1.InitialDir:= GetCurrentDir; btnConnect.Click;2. OnDestroy dari frMain isi dengan:
btnDisconnect.Click;3. OnClick dari btnConnect isi:
if FCapWnd <> 0 then Exit; FCapWnd := capCreateCaptureWindow(‘Capture Window’, //nama window WS_CHILD or WS_VISIBLE, 0, //titik x awal 0, //titik y awal 320, //lebar 240, //tinggi Panel1.Handle, 0); if FCapWnd <> 0 then begin if capDriverConnect(FCapWnd, 0) then begin capOverlay(FCapWnd, True); capPreviewScale(FCapWnd, True); capPreview(FCapWnd, TRUE); capPreviewRate(FCapWnd, 29); end; end;4. OnClick dari btnDisconnect isi:
if FCapWnd <> 0 then begin capCaptureStop(FCapWnd); capDriverDisconnect(FCapWnd); DestroyWindow(FCapWnd); FCapWnd := 0; end;5. OnClick dari btnSave isi seperti ini:
procedure TfrMain.btnSaveClick(Sender: TObject); var jpg: TJpegImage; bmp: TBitmap; begin if FCapWnd = 0 then Exit; if capEditCopy(FCapWnd) then begin jpg := TJpegImage.Create; bmp:= TBitmap.Create; try bmp.LoadFromClipboardFormat(cf_BitMap,ClipBoard.GetAsHandle(cf_Bitmap),0); jpg.Assign(bmp); if SaveDialog1.Execute then jpg.SaveToFile(SaveDialog1.Filename); finally bmp.Free; jpg.Free; Clipboard.Clear; end; end; end;6. OnClick menuitem VideoFormat1 isi:
if FCapWnd = 0 then Exit; capDlgVideoFormat(FCapWnd);7. OnClick menuitem VideoSource1 isi:
if FCapWnd = 0 then Exit; capDlgVideoSource(FCapWnd);8. OnClick menuitem VideoDisplay1 isi:
if FCapWnd = 0 then Exit; capDlgVideoDisplay(FCapWnd);9. OnClick menuitem Compression1 tulis:
if FCapWnd = 0 then Exit; capDlgVideoCompression(FCapWnd);Sekarang coba deh kompile dulu, terus jalankan exenya…^_~
Download disini!
Program Demo VCap (255.2 KiB, 751 hits)
Source Demo VCap (63.4 KiB, 16 hits)
You do not have permission to download this file.
Happy coding ya!. Semoga bermanfaat.