Einzelnen Beitrag anzeigen

ManuKILLED

Registriert seit: 24. Aug 2012
16 Beiträge
 
#1

Webcam Snapshot speichern

  Alt 1. Nov 2012, 18:44
Delphi-Version: XE
Hey Leute,

bin derzeit dabei eine Anwendung zu schreiben, die mir bei Aufruf einen Snapshot mittels der Webcam erstellt und speichert.
Die Anzeige der Webcam klappt fehlerlos, allerdings wird die Grafik nicht gespeichert.

Habe bereits viele Threads durchforscht, allerdings war bisher nichts dabei, was wirklich funktioniert hat.

Ich hoffe wirklich ihr könnt mir wieder einmal helfen.
Hier der Code:
Delphi-Quellcode:
unit Unit4;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

  const
  WM_CAP_DRIVER_CONNECT = WM_USER + 10;
  WM_CAP_EDIT_COPY = WM_USER + 30;
  WM_CAP_SET_PREVIEW = WM_USER + 50;
  WM_CAP_SET_OVERLAY = WM_USER + 51;
  WM_CAP_SET_PREVIEWRATE = WM_USER + 52;
  WM_CAP_FILE_SAVEDIB = WM_USER + 25;

type
  TForm4 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form4: TForm4;

implementation

{$R *.dfm}


function capCreateCaptureWindow(lpszWindowName: LPCSTR;
  dwStyle: DWORD;
  x, y,
  nWidth,
  nHeight: integer;
  hwndParent: HWND;
  nID: integer): HWND; stdcall;
  external 'AVICAP32.DLLname 'capCreateCaptureWindowA';


procedure TForm4.FormCreate(Sender: TObject);
var handle:THandle;
begin
  handle := capCreateCaptureWindow('Video',ws_child+ws_visible, 0,
  0, 320, 240, Form4.Handle, 1);
  SendMessage(handle, WM_CAP_DRIVER_CONNECT, 0, 0);
  SendMessage(handle, WM_CAP_SET_PREVIEWRATE, 30, 0);
  sendMessage(handle, WM_CAP_SET_OVERLAY, 1, 0);
  SendMessage(handle, wm_cap_set_preview, 1, 0);
  SendMessage(handle, WM_CAP_FILE_SAVEDIB, 0, LPARAM(Pchar('C:/file.jpg')));
end;

end.
Beste Grüße
Manu
  Mit Zitat antworten Zitat