代码之家  ›  专栏  ›  技术社区  ›  bugBurger

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

  •  6
  • bugBurger  · 技术社区  · 17 年前

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

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

    6 回复  |  直到 17 年前
        1
  •  6
  •   Matt Matt    17 年前

    如果使用Windows Image Acquisition Library,您将看到用于捕获相机新图片事件的事件。我有一个类似的要求,并编写了一个测试平台;我们去了当地的照相机商店,试了他们所有的照相机。我们能找到的唯一支持此功能的相机是尼康D系列相机。

    我们发现,对于大多数相机,你甚至不能在接通电源的情况下拍照。当您将它们插入USB端口时,大多数相机将切换到一种模式,在这种模式下,它们唯一要做的就是传输数据。要想知道照相机是否能正常工作,最快捷的方法就是把它插入电脑,然后试着拍一张照片。如果它让你这么做,你就有机会了。它还需要支持PTP。

        2
  •  2
  •   Sam    17 年前

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

        3
  •  2
  •   Ilya    17 年前

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

    您可能会发现以下内容很有用 Link . 如果我理解正确的话,这是一个示例代码,正好说明您在寻找什么。谷歌是你的朋友:)

        4
  •  1
  •   Alex Duggleby    17 年前

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

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

    希望有帮助。

        5
  •  0
  •   Sean McMains    17 年前

    这取决于你的相机。

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

        6
  •  0
  •   Mark Ransom    17 年前

    这将取决于相机的品牌。这里有一个链接,可以从 Canon .