AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Webcam Bilder speichern

Ein Thema von Flips · begonnen am 11. Okt 2007 · letzter Beitrag vom 2. Mär 2008
Antwort Antwort
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#1

Webcam Bilder speichern

  Alt 11. Okt 2007, 16:26
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:
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;
Beispielaufruf:
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:
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;
Beispielaufruf:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
//VideoHandle = Zurückgegebenes Handle bei der Initialisierung
SaveWebcamPictureDIB(PChar('C:\test.jpg'),VideoHandle);
end;
Da sollte jetzt für jeden was dabei sein
Philipp F.
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

Re: Webcam Bilder speichern

  Alt 2. Mär 2008, 09:59
Eine Anmerkung von Flips zur zweiten Variante:

Zitat:
In der zweiten Möglichkeit zur Speicherung gebe ich die Message WM_CAP_FILE_SAVEDIB an, schreibe aber, dass es sich bei der erstellten Datei um ein JPEG-Bild handelt.

Wie man in einem aktuellen Beitrag allerdings sehen kann, liefert diese Routine/Message wie auch in der MSDN (WM_CAP_FILE_SAVEDIB) beschrieben ein DIB-Bild zurück (änhlich des Bitmap Formats, wenn nicht sogar identisch ).

Allerdings werden die Bilder auch mit der Endung JPEG fehlerfrei dargestellt, trotzdem bitte ich, dass zu ändern, da sonst womöglich einige User Probleme bei der Konvertierung bekommen werden (bzw. schon bekommen haben )!
Frederic Kerber
  Mit Zitat antworten Zitat
Antwort Antwort

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:20 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