如何在C#中获取网络摄像头图像?

时间:2010-05-21 12:08:49

标签: c# .net-4.0 webcam video-capture

我正在使用C#和.Net4.0进行在线视频会议项目。

我想要一个库或代码,我可以用它来以不同的形式每秒收集网络摄像头图像。我通过使用AVICAP32来尝试这个,我们在其中发送消息用于不同目的,如复制或编辑帧。但是在此我们必须在创建处理程序时传递picturebox的引用,如下所示:

mCapHwnd = capCreateCaptureWindowA("0", 268435456 | 1073741824, 0, 0, 640, 480,picturebox1.Handle.ToInt32(), 0);

使用这些命令我能够捕获图像,但是当我最小化图片框形式时会出现问题。那时候不会创造新的形象。

我认为这是因为我最小化了表单,当它从这个剪贴板复制图像时它没有显示任何内容。

我该如何解决这个问题。任何类型的帮助将不胜感激。

由于 srdusad

3 个答案:

答案 0 :(得分:8)

我使用所有提到的技术(WIA,AviCap和DirectShow)完成了这项工作。 DirectShow是您的最佳选择。查看免费的DirectShowNet库,它是DirectShow的.NET包装器,它甚至包括样本:http://directshownet.sourceforge.net/

更新2012-07-26:我刚刚发布了我的Windows应用程序CamTimer的完整源代码(用.NET / C#编写)。在https://github.com/johanssonrobotics/CamTimer

下载/查看完整代码(包含有效的网络摄像头示例)

答案 1 :(得分:0)

如果您感觉舒服,可以使用VLC。 VLC提供处理网络摄像头的工具。

答案 2 :(得分:0)