bonjour,
j amerais savoir comment faire pour obtenir une image depuis
une webcam
c est un logitech mais ca doit pas changer grand chose
alors si vous connaisez des code ou des liens...
merci d avance
bonjour,
j amerais savoir comment faire pour obtenir une image depuis
une webcam
c est un logitech mais ca doit pas changer grand chose
alors si vous connaisez des code ou des liens...
merci d avance
A priori, comme ça, je vois deux solutions :
*utiliser video for windows (VFW)
ou
*utiliser directshow
Si ce que tu veux c'est juste faire des snapshots, opte pour une solution à base de VFW qui est à mon sens plus simple à mettre en oeuvre.
j ai malheureusement rien trouver sur la VFW
ni sur le net ni dans borland![]()
du moin rien que j ai compris
je veux juste prendre une photo
et la webcam est brancher sur l usb
A+ et merci
Essaie là :
http://msdn.microsoft.com/library/en...vicap_8xyd.asp
Ca me parait un bon pointeur pour commencer.
Après, il te reste Google...
je comprend absolument rien
j ai juste reussi a voir un DeviceName dans une ListBox
je te remerci mais j ai pas le niveau pour ca malheureusement
je pensais pas que ca serai si dur en fait
mais je ne vais pas abandonner et si t as encors des trucs je suis
preneur
A+![]()
Bon, je te fais un petit topo rapide :
D'abord poser un Panel sur une Form.
Ensuite créer le handle pour la fenêtre de capture :
Où "Panel" est le TPanel que tu aura préalablement posé sur ta Form. Je détaille pas les arguments, ça devrait fonctionner comme ça (si tu n'a qu'un périphérique d'acquisition vidéo).
Code : Sélectionner tout - Visualiser dans une fenêtre à part HWND Handle = capCreateCaptureWindow ((LPSTR) "Capture",WS_CHILD | WS_VISIBLE,0, 0, Panel->Width, Panel->Height,(HWND) Panel->Handle,0);
ensuite tu connecte le driver :
Maintenant, la partie intéressante, l'acquisition :
Code : Sélectionner tout - Visualiser dans une fenêtre à part capDriverConnect(Handle, 0);
Normalement, il faudrait passer par une fonction de rappel pour faire les choses proprement.
Etant donnée que tu n'as besoin que d'acquérir une image, on peut faire plus simple (et plus porc aussi) en passant par le presse papier :
Si cela ne fonctionne pas comme ça, essaye de jouer avec l'overlay ou le preview :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Graphics::TBitmap * Bmp=new Graphics::TBitmap; TClipboard *PP = Clipboard(); capEditCopy(Handle); Bmp->Assign(PP); PP->Clear();
où
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 capOverlay(Handle, TRUE); capPreview(Handle, FALSE);
Penser à déconnecter le driver une fois l'acquisition terminée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 capOverlay(Handle, FALSE); capPreview(Handle, TRUE);
Et bien sur, ne pas oublier le fichier d'entête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part capDriverDisconnect(Handle);
Code : Sélectionner tout - Visualiser dans une fenêtre à part #include <vfw.h>
j ai reussi a avoir quelques images
j ai plus qu a continuer a chercher
mais je vien de comprendre comment ca marche (en gros, tres gros )
Merci beaucoup c genial
Tu peux aussi essayer ce composant : TVideoCapture c'est un freeware avec les sources.
Il n'utilise pas VFW mais DirectX
http://www.vclcomponents.com/download.asp?ID_COMPONENT=19320
Partager