Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Ein einzelnes Bild von der Webcam lokal als jpg speichern (https://www.delphipraxis.net/73724-ein-einzelnes-bild-von-der-webcam-lokal-als-jpg-speichern.html)

DarthDestroyer 22. Jul 2006 22:10


Ein einzelnes Bild von der Webcam lokal als jpg speichern
 
Nabend,

ich habe hier in der Suche bereits "alles" durchgelesen, doch komme ich auf keinen Grünen Zweig!

Es sind lediglich Vorschläge, wie ich ganze Videos oder gleich ganze Bilderreihen auslesen kann.

Ich möchte allerdings nur EIN Bild per Aufruf!

Es kann ruhig auch ein Previewpanel auf der Form rumfliegen.

Doch irgendwie schaff ich das nicht ganz!

Da der Code wohl ziemlich lang ist, würde ich das ganze auch gerne in eine extra Unit packen...
Aber naja, die Posts, die ich hier gefunden habe, drehten sich NUR um die Webcam ansteuerung...

Es soll aber nur ein Zusatzfeature in meinem Programm werden...

Kann mir vielleicht jemand nen einfachen Code für meine Wünsche nennen?

Wie gesagt, kann ruhig ein Preview-Panel auf der Form sein. Aber Pro ,z.B Button-Click, nur EIN Bild gespeichert werden.
Am besten OHNE Zwischenablage.

Bin am Verzweifeln! Die VFW.pas habe ich ebenfalls schon.

Bitte um Hilfe! Die Suche ergab für meinen Fall keine Sinnvollen Ergebnisse!

MfG

DarthDestroyer

NicNacMan 22. Jul 2006 23:54

Re: Ein einzelnes Bild von der Webcam lokal als jpg speicher
 
Ich hab leider nur was _mit_ Zwischenablage

Delphi-Quellcode:
uses
  Vfw;

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

procedure TForm1.FormCreate(Sender: TObject);
const
  WM_CAP_DRIVER_CONNECT = WM_USER + 10;
  WM_CAP_SET_PREVIEW    = WM_USER + 50;
  WM_CAP_SET_OVERLAY    = WM_USER + 51;
  WM_CAP_SET_PREVIEWRATE = WM_USER + 52;
begin
  myhandle := capCreateCaptureWindow('Video', WS_CHILD + WS_VISIBLE, 0, 0, 640, 480, Panel1.Handle, 1);
  SendMessage(myhandle, WM_CAP_DRIVER_CONNECT, 0, 0);
  SendMessage(myhandle, WM_CAP_SET_PREVIEWRATE, 500, 0);
  sendMessage(myhandle, WM_CAP_SET_OVERLAY, 1, 0);
  SendMessage(myhandle, WM_CAP_SET_PREVIEW, 1, 0);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  img: TPicture;
const
  WM_CAP_GRAB_FRAME_NOSTOP = WM_USER + 61;
  WM_CAP_EDIT_COPY        = WM_USER + 30;
begin
  SendMessage(myhandle, WM_CAP_GRAB_FRAME_NOSTOP, 1, 0);
  SendMessage(myhandle, WM_CAP_EDIT_COPY, 1, 0);
  img := TPicture.Create;
  try
    img.LoadFromClipboardFormat(cf_Bitmap, ClipBoard.GetAsHandle(cf_Bitmap), 0);
    [...]
  finally
    img.Free;
  end;
end;

DarthDestroyer 23. Jul 2006 11:17

Re: Ein einzelnes Bild von der Webcam lokal als jpg speicher
 
Hat noch jemand einen anderen Vorschlag?

Christian Seehase 23. Jul 2006 12:14

Re: Ein einzelnes Bild von der Webcam lokal als jpg speicher
 
Moin DarthDestroyer,

da ich jetzt nicht weiss, wie das Bild von der Kamera auf den Rechner kommt:
Hast Du Dir schon mal das Hier im Forum suchenDSPACK angeschaut?


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz