C# 实现真正的WebCamera【原创】

来源:互联网 发布:linux打开终端快捷键 编辑:程序博客网 时间:2024/05/20 16:44
近期,做了个小软件,需要在Web页面调用本地摄像头,花了4个小时实现了(9个月没写程序了有点生疏了 ),现分享给大家,希望有人能够用的到。 
   在网上也搜索过好多的资料,基本上都是在WinForm实现的摄像头调用,在页面中调用的基本没看见过。
   思路:在页面中调用ActiveX控件,实现WebCamera(你懂的)。
       
   下面具体步骤,写的有点太详细(有
点过分了,不要喷我  )。

      一、制作 
ActiveX 控件

第一步,用VS2010创建一个项目,Windows窗体控件库,并命名为WebCamera
      图片 
       更改“项目属性-应用程序-程序集信息”设置,勾选“使程序集 COM 可见”:
   图片

       更改“项目属性-生成”设置,勾选“为 COM Interop 注册”(注意,此处如果实在debug状态下修改的,那在调到release状态下还需要再设置一次):
     图片
   
   第二步,
修改AssemblyInfo.cs文件,添加[assembly: AllowPartiallyTrustedCallers()]项(需要引用System.Security名称空间): 
   图片
    
 
  第三步,添加用户控件Camera,并设计界面,放上一个panel用来显示摄像头画面。
   
图片  
  
   
第四步,为了让ActiveX控件获得客户端的信任,控件类还需要实现一个名为“IObjectSafety”的接口。先创建该接口(注意,不能修改该接口的GUID值): 

图片

 
   第四步,为控件类添加GUID,这个编号将用于B/S系统的客户端调用时使用(可以使用 工具-创建GUID 菜单创建一个GUID): 
   图片

   
第五步,在控件类中继承并实现该接口: 
   图片 

第六步,添加视频控制类PCCamera.cs (该类主要功能是负责控制摄像头)。   

   图片

      这样,视频ActiveX控件就开发完成了。 
   第七步,
使用Visual Studio 2010的安装项目进行部署。这与普通的Windows Form应用程序的部署几乎一样,只有一个地方需要注意,将前面创建的用户控件项目作为主输出项目,并设置其Register属性为vsdrpCOM,如下图所示: 
   图片
   图片
   
   将项目生成,在路径下找到Release目录,下面有两个文件,这就是下面我们将要使用的控件。
   图片 

   二、页面中调用控件,实现 WebCamera
    第一步,
将我们做的视频控件进行安装。
      
       第二步,
在页面中添加object标签对,调用我们的视频控件,即实现了我们想要的WebCamera。 
       图片


      果:摄像头不好,把我照那么难看 回头就换电脑....
      
图片
0 0
原创粉丝点击