我正在使用vb.net/c#编写图片编辑窗体应用程序。我有一个客户端要求从连接到计算机的数码相机中捕捉照片。如何从使用vb.net或asp.net或C#的USB电缆连接到我的电脑的数码相机拍照?
如何从USB连接的数码相机设备中捕获照片到我的Windows应用程序中?
我正在使用vb.net/c#编写图片编辑窗体应用程序。我有一个客户端要求从连接到计算机的数码相机中捕捉照片。如何从使用vb.net或asp.net或C#的USB电缆连接到我的电脑的数码相机拍照?
如何从USB连接的数码相机设备中捕获照片到我的Windows应用程序中?
如果您使用Windows图像采集库,那么您将在其中看到捕获摄像头新图片事件的事件。我有类似的要求,并写了一个测试装备;我们去了当地的相机商店,尝试了他们所有的相机。我们能够找到的支持此功能的唯一相机是尼康D系列相机。
我们发现,大多数相机在插入时甚至无法拍照。当您将其插入USB端口时,大多数相机将切换到只有他们将要执行的操作是传输数据。找出相机是否可以工作的快速方法是将其插入PC,然后尝试拍摄照片。如果它让你这样做,你有机会。它也需要支持PTP。
通常相机在连接时显示为可移动驱动器。
因此,对于Winforms应用程序,只需让用户选择要上传的驱动器和图片即可。一旦你有了图片的FileStream,你就可以做任何处理。
在ASP.net中,您将需要一个FileUpload控件,用户可以再次选择要上传的驱动器和图片。处理这个时间将通过HttpRequest.Files对象上的MemoryStream。
希望有所帮助。
这取决于你的相机。
许多相机将简单地安装为USB大容量存储设备。如果是这种情况,那么您可以像从外部磁盘上的任何其他文件那样仅从可见文件系统复制文件。
如果相机没有以这种方式提供其内容,则需要查看相机驱动程序文档以了解他们如何推荐与其进行交互。
我假设你想要激活从相机所连接的计算机上拍照的动作。如果是这样的话,我会做的第一件事就是搜索该特定相机型号的API。除了访问摄像机内的存储卡之外,我不相信用于与数码相机交互的标准协议/框架。
这取决于相机导出的接口。如果这是标准的海量存储界面,您只需使用标准文件界面即可将相机看作可移动磁盘并可使用标准的创建/读取/写入/文件操作。
许多新相机都有ptp(图片传输协议)接口。所以你需要使用Windows Image Acquisition API。
您可能会对Link有用。如果我理解正确,这是一个示例代码,您正在寻找什么。谷歌是你的朋友:)
另一块信息:许多相机将同时支持大容量存储和ptp接口,它可以通过相机用户界面进行选择。在自动模式下,相机可能会切换到ptp界面。
谢谢,我读过WIA文档,可能是它的C/C++?不适用于VB.nET,C# – bugBurger 2008-09-16 19:32:48
Matt @ Nikon D系列支持此操作? – 2011-04-03 19:35:23