Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Webcam Bild (JPG) per FTP-Uploaden (https://www.delphipraxis.net/97435-webcam-bild-jpg-per-ftp-uploaden.html)

internetnavigator 10. Aug 2007 12:49


Webcam Bild (JPG) per FTP-Uploaden
 
Hallo allezusammen!

Ich habe mir den Script von Ultimator mal als Basis Programm "genommen":

Delphi-Quellcode:
//Zuerst brauchst du folgende Konstanten
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.LaberLaber; //halt irgendne Prozedur, ich habs im Formcreate, damit ich gleich was seh ^^
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;
und nun bekomme ich das aktuelle Bild in Panel1 angezeigt, nur wie kann ich jetzt das ganze als JPG speichern und dann per FTP uploaden? (ich denke mal mit idFTP (habe ich schonmal getestet, geht gut))

Das ganze sollte dann auch automatisch alle 2-5 sec geschehen (möchte ich per Timer machen).

Nun wie bekomme ich das hin?

Wenn jemand schon ein SourceCode für so etwas hat und ihn mir zum "spielen" gibt, wäre ich sehr dankbar!

Gruß i-n

1234588 10. Aug 2007 13:46

Re: Webcam Bild (JPG) per FTP-Uploaden
 
klingt ganz danach, als ob du andere ausspionieren moechtest.

chaosben 10. Aug 2007 13:57

Re: Webcam Bild (JPG) per FTP-Uploaden
 
Naja, eigentlich ist die Sache recht einfach:
- Als erstes brauchst du das Bild vom Panel in eine "Bild-Variable" (z.B. ein TBitmap). Das erreichst du zum Beispiel mit der Hier im Forum suchenPrintWindow-Funktion.
- Dann konvertierst du das Bitmap in ein JPEG. Das geht imho via
Delphi-Quellcode:
JpegImage.Assign(Bitmap)
.
- Danach speicherst du das Bild als Datei.
- Und dann lädst du sie hoch. (wie du es scheinbar schon gemacht hast)

Fertig. Noch Fragen? :D

Torpedo 10. Aug 2007 14:02

Re: Webcam Bild (JPG) per FTP-Uploaden
 
Zitat:

Zitat von 1234588
klingt ganz danach, als ob du andere ausspionieren moechtest.

Wieso? Webcams werden doch oft dafür benutzt alle X Sekunden ein Bild zu schießen und es dann im Internet auf einer Webseite zu veröffentlichen.

1234588 10. Aug 2007 14:11

Re: Webcam Bild (JPG) per FTP-Uploaden
 
Zitat:

Zitat von Torpedo
Zitat:

Zitat von 1234588
klingt ganz danach, als ob du andere ausspionieren moechtest.

Wieso? Webcams werden doch oft dafür benutzt alle X Sekunden ein Bild zu schießen und es dann im Internet auf einer Webseite zu veröffentlichen.

okay, kann auch sein. sry =)


chaosben, funktioniert das auch mit video-overlays?

internetnavigator 10. Aug 2007 14:29

Re: Webcam Bild (JPG) per FTP-Uploaden
 
ich habe einen PC mit einer Webcam, die zur Straße guckt im Keller stehen, und ich würde mal gern versuchen das jpg von der schule über einen Server zu erreichen (fast live versteht sich).

Ich vestehe nicht ganz, wie ich das Bild zum jpg bringe. So?:
Delphi-Quellcode:
var
bild : TBitmap; //? oder String?

begin
bild := handle
JpegImage.Assign(bild);

end;
Gruß i-n

1234588 10. Aug 2007 14:37

Re: Webcam Bild (JPG) per FTP-Uploaden
 
Delphi-Quellcode:
uses jpeg;

..

var
  j: tjpegimage;
begin
  j := tjpegimage.create;
  j.assign(deine TBitmap quelle);
natuerlich musst du das dann noch abspeichern (j.savetofile()) und das j objekt wieder freigeben (j.free)

inherited 10. Aug 2007 15:00

Re: Webcam Bild (JPG) per FTP-Uploaden
 
Morgen.
Eine möglichkeit das Bild von dem Panel in ein Bitmap zu bekommen ist über die Zwischenablage, wobei VHandle dein Video-Handle ist.

Delphi-Quellcode:
  SendMessage(Vhandle, WM_CAP_EDIT_COPY, 1, 0 );
  Image1.Picture.Bitmap.LoadFromClipboardFormat(cf_BitMap,ClipBoard.GetAsHandle(cf_Bitmap),0);

internetnavigator 10. Aug 2007 15:17

Re: Webcam Bild (JPG) per FTP-Uploaden
 
gut!

ich habe noch
Delphi-Quellcode:
Clipbrd
in uses geschrieben, dann gings, bis auf, dass nur ein schwarzes Bild gespeichert wird, da Image1 kein Bild bekommt.

Delphi-Quellcode:
  SendMessage(handle, WM_CAP_EDIT_COPY, 1, 0 ); //Läd Bild in das Clipboard, oder?
  Image1.Picture.Bitmap.LoadFromClipboardFormat(cf_BitMap,ClipBoard.GetAsHandle(cf_Bitmap),0); // Soll das nicht das Bild in Image1 laden?
Gruß i-n

internetnavigator 10. Aug 2007 15:22

Re: Webcam Bild (JPG) per FTP-Uploaden
 
Moment, ich habe BD2006 einmal neugestartet, jetzt geht's! (also noch ^^)

Vielen Danke für eure Hilfe!
Ich werde mich mal jetzt mit dem Upload beschäftigen, wenn ich etwas nicht versteh, melde ich mich...

Gruß i-n


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 Uhr.
Seite 1 von 5  1 23     Letzte »    

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