Hallo zusammen,
ich bin momentan dabei mir eine kleine Anwendung zu schreiben, die mir aller x Minuten ein Bild von der Webcam holt, es auf der Festplatte ablegt und zusätzlich aller y Minuten auch eines per
FTP auf einen Webserver hochlädt.
Das Ablegen auf Festplatte und
FTP soll hierbei erstmal keine Rolle spielen sondern lediglich die Ansteuerung der Webcam.
Ich habe eine Reihe von Twain-Komponenten durchprobiert und mich schlussendlich für die Komponenten von
http://delphitwain.sourceforge.net entschieden. Diese scheinen mir am effizientesten und umfangreichsten zu sein.
Folgendes großes Problem stellt sich mir nun dar:
Die Komponenten greifen natürlich auf die Twain-Schnittstelle zu. Der Treiber der Webcam installiert nun natürlich sein Interface in der Twain-Schnittstelle. Das sieht bei mir dann wie folgt aus:
((( Bild dazu )))
Um nun ein Bild aufzunehmen muss ich jedes Mal auf Capture Image klicken.
((( Bild dazu )))
Dann kommt auch das gewünscht heraus. Da ich jedoch im Hintergrund aller x Minuten die Bilder aufnehmen möchte, will ich natürlich nicht jedes Mal den Capture Image Button drücken, sondern die Anwendung soll das Bild einfach so beziehen können.
Für diejenigen, die die oben genannten Twain-Komponenten kennen: In der Funktion EnableSource() ist der erste Paramter ShowUI: Boolean. Klingt erstmal genau nach dem was ich suche, aber wenn ich den Parameter mit False übergebe passiert einfach nix, d.h es wird kein Bild aufgenommen.
Hat nun jemand eine Idee wie man an ein Bild der Webcam kommt? Muss nicht zwangsläufig mittels dieser Komponenten geschehen. Bin für alles offen
Danke schonmal und Grüße aus Dresden
Edit: Was mir gerade noch eingefallen ist, dass es auch noch die WDM-Schnittstelle gibt. Vielleicht ist es darüber einfacher das Bild zu bekommen?!? Tipps dazu sind auch willkommen.
Edit2: Ich hab den Gedanken mit WDM einwenig weiter verfolgt und aus den Beispielen des DSPack (
http://www.progdigy.com/dspack) habe ich jetzt eine Anwendung abgeleitet die mir die Webcam als Stream öffnet und dann daraus Snapshots machen kann. Das ist natürlich mehr als ich brauche zumal es zuviele Ressourcen frisst. Wie stell ich es mit den DSPack-Komponenten an, dass der FilterGraph nur den Stream zur Kamera herstellt, ein einziges Standbild aufnimmt und dann die Verbindung wieder auflöst.