WebCamStream->Panel Funzt, und wie bekomme ich das in ein Image ?!
-
hmm doof, immer noch keine lösung gefunden, kann mir eventuell wer weiter helfen wenn ich das kompette projekt zum downloaden mal on stelle?
der webcam stream wird via handle in die panel 1 und 2 geladen, kann den handle auch aufs form oder auf ne memo setzen dann hab ich das bild dort,
nur wie bekomme ich das in ein image feld ? damit ich dann die einzelnen pixel abgreifen kann !?
hat einer ne idee? komme einfach net weiter und bin ratlos
-
Also ich denke, das Problem ist, daß du ein Windows-Handle benötigst, aber gleichzeitig die Eigenschaft Canvas benutzen willst.
Das einzige Control, das dies standardmäßig unterstützt ist TForm.Dann kannst du also das Bild von Form->Canvas abgreifen.
Oder aber du baust dir ein eigenes Control abgeleitet von TCustomControl, da dies sowohl von TWinControl abgeleitet ist als auch die Eigenschaft Canvas besitzt.
Die anderen Controls (Panel, Memo etc.) unterstützen nicht das direkte Auslesen der Pixel.
Du kannst dann Canvas->CopyRect(...) benutzen, um die Daten in ein Image zu kopieren und dann abzuspeichern.
-
wenn ichs jetzt aufs tform lade mach mir mal bitte ein beispiel wie es in das image1 dann geht?!
-
Image1->Width = form->Width; // hier noch passende Breite und Höhe bestimmen Image1->Height = form->Height; // falls Form größer als Web-Stream-Image Rect r = Image1->ClientRect(); Rect r2 = Form1->ClientRect(); Image1->CopyRect(r, Form1->Canvas, r2);Wenn du den letzten Parameter 'r2' veränderst, kannst du den Ausschnitt ändern bzw. das Bild strecken oder stauchen.
-
[C++ Error] Unit2.cpp(24): E2335 Overloaded 'Rect' ambiguous in this context
[C++ Error] Unit2.cpp(24): E2379 Statement missing ;
[C++ Error] Unit2.cpp(25): E2335 Overloaded 'Rect' ambiguous in this context
[C++ Error] Unit2.cpp(25): E2379 Statement missing ;
[C++ Error] Unit2.cpp(27): E2316 'CopyRect' is not a member of 'TImage'
[C++ Error] Unit2.cpp(27): E2451 Undefined symbol 'r'
[C++ Error] Unit2.cpp(27): E2451 Undefined symbol 'r2'bei rec meckert er
-
Image1->Width = Form1->Width; // hier noch passende Breite und Höhe bestimmen
Image1->Height = Form1->Height; // falls Form größer als Web-Stream-Image
TRect r = Image1->ClientRect();
TRect r2 = Form1->ClientRect();
Image1->CopyRect(r, Form1->Canvas, r2);----------------------------------------------------------------
[C++ Error] Unit2.cpp(23): E2314 Call of nonfunction
[C++ Error] Unit2.cpp(24): E2314 Call of nonfunction
[C++ Error] Unit2.cpp(25): E2316 'CopyRect' is not a member of 'TImage'
[C++ Warning] Unit2.cpp(26): W8004 'r2' is assigned a value that is never used
[C++ Warning] Unit2.cpp(26): W8004 'r' is assigned a value that is never used
-
Image1->Width = form->Width; // hier noch passende Breite und Höhe bestimmen Image1->Height = form->Height; // falls Form größer als Web-Stream-Image TRect r = Image1->ClientRect; TRect r2 = Form1->ClientRect; Image1->Canvas->CopyRect(r, Form1->Canvas, r2);Warum schreibst du dein Bitmap nich gleich in das Canvas des Images?
-
geht das mit dem quellcode direct ohne rec ?
-
Ja.
Nimm einfach das ClientRect.
-
funzt hab derzeit nur ne cpu auslastung von ca. 20-35%
mal gucken ob ich die ihrgend wie runter bekomme dasist noch bissel viel
gibts ihrgend wie ne möglichkeit die frame rate der cam runter zu bekomme auf 10fps oder so?
-
eins wurmt mich wenn ich die funktion raus nehme die zur speicherung der datei als bmp raus nehme funzt nix mehr
hab das gefühl das er jedes frame auf hdd speichert und dann wieder ihrgend wie löd oder so?
kann man den teil mit der hdd speicherung net raus nehmen ? weil den brauch ich mal garnicht..
-
http://www.keksohr.de/index.php?menu=projekt-index-cam-mca-25
hab hier mal alles drin, quelltexte komme auch die tage

bei fragen ins gästebuch oder via mail melden,gruß philip