Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Webcam problem (https://www.delphipraxis.net/132181-webcam-problem.html)

marius0702 7. Apr 2009 17:34


Webcam problem
 
ich hab mir heute eine neue webcam gekauft ("Hercules Dualpix Chat and Show"). ich habe sie erstmal mit skype getestet und das hat auch funktioniert. aber als ich versucht hab das webcambild so
Delphi-Quellcode:
...

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;

implementation

{$R *.dfm} 

//Dann brauchst du noch das hier
function capCreateCaptureWindow(lpszWindowName: LPCSTR;
  dwStyle: DWORD;
  x, y,
  nWidth,
  nHeight: integer;
  hwndParent: HWND;
  nID: integer): HWND; stdcall;
  external 'AVICAP32.DLL' name 'capCreateCaptureWindowA';


procedure TForm1.Button1Click(Sender: TObject);
var handle:THandle;
begin
  handle := capCreateCaptureWindow('Video',ws_child+ws_visible, 0,
  0, 320, 240, Panel1.Handle, 1); //Wie du siehst, brauchst du ein Panel in diesem Beispiel ;-)
  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);
end;

...
in meinem programm darzustellen wurde im panel nur ein schwarzes bild dargestellt und als ich dann so

Delphi-Quellcode:
SendMessage(Vhandle, WM_CAP_EDIT_COPY, 1, 0 );
Image1.Picture.Bitmap.LoadFromClipboardFormat(cf_BitMap,ClipBoard.GetAsHandle(cf_Bitmap),0);
das bild in das image laden wollte kam eine fehlermeldung (format in der zwischenablage wird nicht unterstützt).

ich vermute es liegt daran, dass das video mit MJPEG komprimiert wird. leider kann ich das vodeoformat nicht ändern, weil ich im formatmenu
Delphi-Quellcode:
  SendMessage(vhandle,WM_CAP_DLG_VIDEOFORMAT,1,0);
nur mjpeg und die auflösung auswählen kann.
und im komprimierungsmenu
Delphi-Quellcode:
  SendMessage(vhandle,WM_CAP_DLG_VIDEOCOMPRESSION,1,0);
steht nur "keine erneute komprimierung".

bei meiner alten webcam hat der code immer wunderbar funktioniert.
die led an der webcam geht übrigens an wenn ich das programm starte.
weiß jemand wie ich das problem ,möglichst nicht zu kompliziert ,lösen kann?

turboPASCAL 7. Apr 2009 18:58

Re: Webcam problem
 
Bitte mal lesen:
http://www.delphipraxis.net/internal...021738#1021738

marius0702 7. Apr 2009 22:16

Re: Webcam problem
 
top :thumb: .
funktioniert super. :-D
danke


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