Comment obtenir une web cam images en C#?
Je suis en train de travailler sur de la vidéo en ligne projet de conférence en C# et .Net4.0.
Je veux une bibliothèque ou un code que je peux utiliser pour la collecte de caméra web images par seconde sous une forme différente. J'ai essayer en utilisant la AVICAP32, dans lequel nous pouvons envoyer des Messages à des fins différentes comme le copier ou de modifier des images.mais dans ce que nous avons à passer une référence de picturebox tout en créant un gestionnaire comme indiqué ci-dessous:
mCapHwnd = capCreateCaptureWindowA("0", 268435456 | 1073741824, 0, 0, 640, 480,picturebox1.Handle.ToInt32(), 0);
À l'aide de ces commandes, je suis capable de capturer des images, mais le problème vient quand je réduis la picturebox forme. À l'époque ne pas créer une nouvelle image.
Je pense que c'est arrivé parce que je minimise la forme et lorsqu'il copie l'image de ce presse-papiers, il ne veut pas montrer quoi que ce soit.
Comment puis-je résoudre ce problème . N'importe quel type d'aide sera appréciée.
Merci
srdusad
Patrick : en ce moment je m en utilisant AVICAP32.dll et c'est de travailler pour moi. Mais mon problème est que je veux utiliser les images de la caméra dans différentes formes. Mais en utilisant AVICAP32.dll nous avons pour lier un contrôle picturebox gestionnaire pour obtenir de l'image. et quand je réduisez le formulaire, il ne veut pas envoyer quoi que ce soit sur d'autres système.J'ai aussi essayer quelques autres, comme WIA et directshow, mais je ne peux pas trouvé beaucoup d'aide de leur part.
OriginalL'auteur SR Dusad | 2010-05-21
Vous devez vous connecter pour publier un commentaire.
J'ai fait cela à l'aide de toutes les techniques décrites ci-dessus (WIA, AviCap & DirectShow). DirectShow est votre meilleure option. Découvrez la libre DirectShowNet de la bibliothèque qui est un .NET wrapper pour DirectShow, il inclut même des échantillons: http://directshownet.sourceforge.net/
Mise à JOUR 2012-07-26: j'ai juste sorti le compléter le code source de mon application Windows CamTimer (écrit en .NET/C#). Télécharger/visualiser le code complet (avec Webcam), exemples à https://github.com/johanssonrobotics/CamTimer
Lorsque je modifie le cadre de l'échantillon à partir de 2.0 à 4.0 ,il me donne l'erreur sur sourceFilter = FindCaptureDevice(); pls me dire comment utiliser le direct show de l'échantillon .net4.0
Bon d'entendre que ça fonctionne (même si en partie)! Vous devriez essayer de poser cette question dans la DirectShowNet forums sur SourceForge, je suis sûr que les développeurs sont mieux adaptés pour répondre à ceci: sourceforge.net/projects/directshownet/forums/forum/460697
Salut Fedrik : Les échantillons a fonctionné correctement jusqu'à .Net3.5 mais quand je change de version .Net4.0 .Il me donne l'erreur sur le nom[0].BindToObject(null, null, réf. iid, source); en public IBaseFilter FindCaptureDevice() fonction.Svp aider moi parce que je veux que ce DirectShownet .Net4.0
SR Dusad, il y a une erreur dans votre code comme je l'ai mentionné DirectShow.Net forum. Dernier échantillon et la dernière DirectShow.Net fonctionne bien avec n'importe quelle version de .net, notamment .net4 et VS2010.
OriginalL'auteur Fredrik Johansson
Si vous êtes à l'aise, vous pouvez utiliser VLC pour cela. VLC fournit le service pour gérer la webcam.
Vous pouvez utiliser VLC wrapper créé pour .NET. Vous pouvez aller à VLC site et également demander de l'aide de l'VLC forum des développeurs.
OriginalL'auteur Ram
Autre approche à l'aide de WIA http://www.codeproject.com/KB/cs/WebCamService.aspx
OriginalL'auteur Konstantin Salavatov