Hmmm... Jetzt trat ein größeres (unlösbares?!?) Problem auf, welches mich doch sehr beschäftigt.
Dieses "VideoCapture" ist ja relativ genial. Nur hat es ein Problem:
Ich kann mit
Delphi-Quellcode:
CapSetSingleImageFileName(PathAndFilename);
CapGrabSingleFrame;
CapSetVideoLive;
zwar ein Bild Schießen und es als *.bmp in einem Ordner speichern. Doch bringt mir das überhaupt nichts. Durch das Schreiben auf der Platte und das relativ zeitnah folgende Lesen der Datei um es zu Vergleichen, bringt, so vermute ich, Kuddelmuddel auf der Festplatte. Bevor er es geschrieben hat, muss er es auch schon wieder lesen. -> EAccessViolation. Ich brauche aber kurze Zeitabstände. Sonst bringt mir das alles nichts.
Nun habe ich dieses erst einmal mit einem Screenshot gelöst, was wunderbar funktioniert. Das blöde hierbei ist: Das Program muss ständig im Vordergrund oben links im Bildschirm sein. Sonst macht es einen Screen vom falschen Ausschnitt.
Natürlich ist mir der Gedanke gekommen über das CapGrapSingelFrame dies sofort einem TBitmap o.ä. zuzuweißen. Ja, das beschäftigte mich sogar die ganze Nacht... *grml* Das blöde ist, dass er dieses Cap[...] als "Undeclared identifier" nur anerkennt.
Nun habe ich es leider nicht geschafft. Meine einzigste Hoffnung liegt in TBitmap.LoadFromStream, LoadFromResourceID und LoadFromResourceName, welches ich aber beim besten Willen nicht verstanden habe, wie dies fuktioniert. Ich glaube, dass dies mir zu hoch ist...
Hätte jemand eine Idee, wie man aus dem Cap ein Bitmap macht, ohne es vorher auf Platte zu schreiben?
MfG Phil