![]() |
Delphi-Version: XE
Webcam Snapshot speichern
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:
Beste Grüße
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.DLL' name '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. Manu |
AW: Webcam Snapshot speichern
Delphi-Quellcode:
SendMessage(handle, WM_CAP_FILE_SAVEDIB, 0, LPARAM(PAnsichar('C:\temp\file.jpg')));
|
AW: Webcam Snapshot speichern
Zitat:
|
AW: Webcam Snapshot speichern
Zitat:
![]() odda macht sich etwas, das immer funktioniert ;)
Delphi-Quellcode:
// ANSI Version -> PAnsiChar verwenden
function capCreateCaptureWindowA(lpszWindowName: LPCSTR; dwStyle: DWORD; x, y, nWidth, nHeight: integer; hwndParent: HWND; nID: integer): HWND; stdcall; external 'AVICAP32.DLL' name 'capCreateCaptureWindowA'; // Unicode Version -> PWideChar verwenden function capCreateCaptureWindowW(lpszWindowName: LPCWSTR; dwStyle: DWORD; x, y, nWidth, nHeight: integer; hwndParent: HWND; nID: integer): HWND; stdcall; external 'AVICAP32.DLL' name 'capCreateCaptureWindowW'; // Automatisch wie der Compiler -> PChar verwenden function capCreateCaptureWindow(lpszWindowName: {$IFDEF UNICODE}LPCWSTR{$ELSE}LPCSTR{$ENDIF}; dwStyle: DWORD; x, y, nWidth, nHeight: integer; hwndParent: HWND; nID: integer): HWND; stdcall; external 'AVICAP32.DLL' name {$IFDEF UNICODE}'capCreateCaptureWindowW'{$ELSE}'capCreateCaptureWindowA'{$ENDIF}; |
AW: Webcam Snapshot speichern
nimm mal bmp statt jpg ....
|
AW: Webcam Snapshot speichern
Vielen Dank für die wirklich fixen Antworten, klappt nun alles bestens :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:30 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