Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Webcam - Funktion für Einzelbild? (https://www.delphipraxis.net/86944-webcam-funktion-fuer-einzelbild.html)

Nicolai1234 21. Feb 2007 13:35


Webcam - Funktion für Einzelbild?
 
Hallo,
ich möchte gerne in einem Programm das Bild einer Webcam benutzen.
Ich habe auch schon eine Weile gesucht und stoße früher oder später auf diesen Thread: Webcam in Delphi

Allerdings muss ich gestehen, dass ich da überhaupt nicht durchblicke und nicht wirklich verstehe, wie das da von statten geht.
Mein Ziel ist eine Funktion à la
Delphi-Quellcode:
function getPicture: TBitmap
Das wäre für mich optimal, denn so könnte man am einfachsten mit den Bildern weiterarbeiten.

Nur leider verstehe ich im Moment noch absolut nicht, wie ich den Code von oben benutzen muss, um so etwas umzusetzen.
Ich hoffe, ihr könnt mir helfen :oops:
Danke schonmal im voraus

SirThornberry 21. Feb 2007 13:43

Re: Webcam - schon wieder...
 
könntest du bitte dem Beitrag einen aussagekräftigen Titel geben? ("schon wieder..." sagt nichts über dein Problem aus)

inherited 21. Feb 2007 13:48

Re: Webcam - schon wieder...
 
Aus einem etwas älteren Projekt von mir:
Delphi-Quellcode:
var
  VHandle: THandle;

const
  WM_CAP_SET_VIDEOFORMAT = WM_USER + 42;
  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_DLG_VIDEODISPLAY = WM_USER + 43;
[..]
function capCreateCaptureWindow(lpszWindowName: LPCSTR; dwStyle: DWORD;
  x, y,
  nWidth,
  nHeight: integer;
  hwndParent: HWND;
  nID: integer): HWND; stdcall;
  external 'AVICAP32.DLL' name 'capCreateCaptureWindowA';

procedure StartWebcam;
begin
  SendMessage(Vhandle, WM_CAP_SET_VIDEOFORMAT,0,0);
  Vhandle := capCreateCaptureWindow('Video',ws_child+ws_visible, 0,
  0, 320, 240, Form1.Panel1.Handle, 1); //Hier ein geeignetes Anzeigefenster und die Abmaßungen
  SendMessage(Vhandle, WM_CAP_DRIVER_CONNECT, 0, 0);
  SendMessage(Vhandle, WM_CAP_SET_PREVIEWRATE, 30, 0);
  sendMessage(Vhandle, WM_CAP_SET_OVERLAY, 1, 0);
  SendMessage(Vhandle, wm_cap_set_preview, 1, 0);
end;

procedure GetPicture(var Bitmap: TBitmap);
begin
  SendMessage(Vhandle, WM_CAP_EDIT_COPY, 1, 0 );
  Bitmap.LoadFromClipboardFormat(cf_BitMap,ClipBoard.GetAsHandle(cf_Bitmap),0);
end;
Ist aber 1. nicht deine Methode und 2. mit dem Zwischenspeicher nicht ganz glücklich, da gibt es sicher noch bessere Methoden.

taktaky 18. Sep 2007 10:45

Re: Webcam - Funktion für Einzelbild?
 
Und wie soll der Code in Button1 lauten, damit ein Bild von Webcam auf Form angezeigt wird?

inherited 18. Sep 2007 17:15

Re: Webcam - Funktion für Einzelbild?
 
Irgendwo am Anfang die funktion "StartWebcam" aufrufen und dann GetPicture um ein Bild zu machen

taktaky 19. Sep 2007 09:51

Re: Webcam - Funktion für Einzelbild?
 
Hallo,

Wieso die funktion "StartWebcam" ?
Und was ist mit dem Procedure GetPicture

Delphi-Quellcode:

procedure TForm1.Button1Click(Sender: TObject);
begin
Bitmap1.Picture:= ???
end;



---------------

turboPASCAL 19. Sep 2007 10:09

Re: Webcam - Funktion für Einzelbild?
 
@taktaky,

Entschuldige, aber du solltest dich wirklich mal in Delphi einarbeiten.
Fange mit leichten Sachen an die du verstehst oder zu Verstehen lernst.
Es ist nicht gerade die feine Art bei jeden Pop** eine Frage ins Forum zu stellen
was eigendlich Grundwissen sein sollte.

Was ist eine Funktion was eine Procedure, was sind Aufrufe oder Befehle und was ist ein Compieler.
Was ist ein Programm etc.

Ein wenig Eigeninitiative vermisse ich bei einigen Fragen, so gibt es in der Freewaresparte und oder in der Opensourceabteilung einen kompletten Code als fertiges Programm zum Auslesen von Webcambildern.
Das Teil speichert auch Bilder. Zugegeben das Programm ist kein leichter Stoff aber est reicht um ein wenig darin herumzuexperimenieren.

Nicht sauer sein, ich habe heute schlecht geschlafen. :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:35 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