如何使用 vb.net 或 asp.net 或 C# 从通过 USB 电缆连接到计算机的数码相机拍照?

StackOverflow https://stackoverflow.com/questions/75691

  •  09-06-2019
  •  | 
  •  

我正在使用 vb.net/c# 编写图片编辑 Windows 窗体应用程序。我有一个客户要求从连接到计算机的数码相机捕获照片。

如何在 Windows 应用程序中从 USB 连接的数码相机设备捕获照片?

有帮助吗?

解决方案

如果您使用 Windows 图像采集库,您将在那里看到用于捕获相机新图片事件的事件。我有类似的需求并编写了一个测试装置;我们去了当地的相机店,尝试了他们拥有的每一款相机。我们能找到的唯一支持此功能的相机是尼康 D 系列相机。

我们发现,大多数相机在插入电源后甚至无法拍照。当您将它们插入 USB 端口时,大多数相机都会切换到一种模式,其中它们唯一要做的就是传输数据。确定相机是否正常工作的快速方法是将其插入电脑,然后尝试拍照。如果它允许你这样做,你就有机会。它还需要支持PTP。

其他提示

这取决于相机导出的接口。如果这是标准大容量存储接口,您只需使用标准文件接口,即您将把相机视为可移动磁盘,并且可以使用标准创建/读取/写入/文件操作。
许多新相机都有 ptp(图片传输协议)接口。所以你需要使用 Windows图像采集 API。

您可能会发现以下有用 关联. 。如果我理解正确的话,这就是您正在寻找的示例代码。谷歌是你的朋友:)

另一条信息:许多相机将支持大容量存储和 ptp 接口,并且可以通过相机用户界面进行选择。在自动模式下,相机可能会切换到 ptp 界面。

我假设您想激活从相机所连接的计算机拍照的操作。如果是这种情况,那么我要做的第一件事就是搜索该特定相机型号的 API。我不相信除了访问相机内的存储卡之外,还存在与数码相机交互的标准协议/框架。

通常,相机在连接时显示为可移动驱动器。

因此,对于 Winforms 应用程序,只需让用户选择要上传的驱动器和图片即可。一旦有了图片的FileStream,就可以进行任何处理。

在 ASP.net 中,您将需要一个 FileUpload 控件,用户可以再次选择要上传的驱动器和图片。这次的处理将通过 HttpRequest.Files 对象上的 MemoryStream 进行。

希望有帮助。

这取决于您的相机。

许多相机将简单地安装为 USB 大容量存储设备。如果是这种情况,那么您只需从可见文件系统复制该文件,就像复制外部磁盘上的任何其他文件一样。

如果相机无法以这种方式提供其内容,您需要查看相机驱动程序文档,了解他们建议如何与其交互。

这取决于相机的品牌。这是一个开始的链接 佳能.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top