2011-03-13 20 views
1

我想创建一个Win-Form应用程序可以连接到连接到我的计算机的数码相机。我想要在计算机上看到Persenels的实时视图,然后拍下Persenels。用连接到计算机的数码相机拍摄Persenels图片

如何实施此操作?

我可以使用什么相机?

我可以使用什么组件或库?

我可以使用什么SDk工具?

请帮助我...

+2

什么数码相机?它是否有任何TWAIN驱动程序或类似的?有些相机可以通过导线进行控制,其他相机则不可以。 –

+0

你说的是网络摄像头还是袖珍相机?如果它是一个紧凑的相机取决于制造商,你必须使用DLL或其他。我认为佳能拥有一个很好的DLL来管理它。 –

+0

Albin Sunnanbo @我可以使用何种型号的摄像机进行导线控制? –

回答

1

您可以使用Windows Image Acquisition API执行此操作。通过Project + Add Reference,Browse选项卡开始,导航到c:\ windows \ system32 \ wiaaut.dll。这是一个COM组件,您将通过WIA名称空间中的接口类型获得它的互操作库。

你想要做的第一件事就是获取相机的引用,使用WIA.ShowSelectDevice()。如果只有一个摄像头连接,它会返回一个Device对象,如果有更多的话,这个对话框会让用户选择。像这样:

public static WIA.Device SelectCamera() { 
     var dlg = new WIA.CommonDialog(); 
     try { 
      return dlg.ShowSelectDevice(WIA.WiaDeviceType.CameraDeviceType, false, false); 
     } 
     catch (System.Runtime.InteropServices.COMException ex) { 
      if (ex.ErrorCode == -2145320939) return null; 
      throw; 
     } 
    } 

这应该让你开始。查看这个MSDN page的代码片段,了解更多关于API的更多信息。请注意,并非所有相机都允许您在连接到机器时以交互方式使用它们。我的廉价点和射击不是。

+0

您建议用什么相机来执行此操作? –