![]() |
Webcam Bilder speichern
Da in letzter Zeit oft gefragt wurde, wie man denn das aktuelle Bild der Webcam lokal speichern kann, gebe ich hier zwei Möglichkeiten an.
Beide Funktionen erwarten nur den Dateinamen und das Handle, welches bei der Initialisierung von der Funktion capCreateCaptureWindow zurückgegeben wird. Die erste Möglichkeit über die Zwischenablage: Format: Bitmap
Delphi-Quellcode:
Beispielaufruf:
procedure SaveWebcamPicture(strFilename: string;WebcamHandle: THandle);
const WM_CAP_EDIT_COPY = WM_USER + 30; var Bitmap : TBitmap; begin Bitmap := TBitmap.Create; try Bitmap.PixelFormat := pf24Bit; SendMessage(WebcamHandle,WM_CAP_EDIT_COPY,1,0); Bitmap.LoadFromClipboardFormat(cf_BitMap,ClipBoard.GetAsHandle(cf_Bitmap),0); Bitmap.SaveToFile(strFilename); finally FreeAndNil(Bitmap); end; end;
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin //VideoHandle = Zurückgegebenes Handle bei der Initialisierung SaveWebcamPicture('C:\test.bmp',VideoHandle); end; Die zweite Möglichkeit über capFileSaveDIB: Format: JPEG
Delphi-Quellcode:
Beispielaufruf:
function SaveWebcamPictureDIB(pFileName: PChar;WebcamHandle: THandle):Boolean;
const WM_CAP_FILE_SAVEDIB = WM_USER + 25; begin if IsWindow(WebcamHandle) then result := (SendMessage(WebcamHandle,WM_CAP_FILE_SAVEDIB,0,LPARAM(pFileName)) <> 0) else result := false; end;
Delphi-Quellcode:
Da sollte jetzt für jeden was dabei sein :mrgreen:
procedure TForm1.Button1Click(Sender: TObject);
begin //VideoHandle = Zurückgegebenes Handle bei der Initialisierung SaveWebcamPictureDIB(PChar('C:\test.jpg'),VideoHandle); end; |
Re: Webcam Bilder speichern
Eine Anmerkung von Flips zur zweiten Variante:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz