从Windows C#Canon SDK与PTP或MTP对齐图片

Nat*_*ate 8 c# camera automation wpd

我希望得到一些关于实现看似简单目标的一般指导.我有一个数码单反相机(佳能EOS 50D),需要编写一个应用程序,告诉相机拍照.我还需要将图片传输到计算机,并可能将其从相机的存储中删除.奖励将是在我的应用程序中从相机获得实时预览.我的环境将是Windows(XP Pro或Vista Enterprise)和.Net 3.5(C#).

我做了一些研究,发现了几个选择.我知道一个会工作,但限制我将来只使用佳能相机.我找到并从佳能下载了一个SDK,它提供了很多这方面的功能.我查看了SDK,虽然它很广泛并且用C语言编写,但它确实有C#包装器,可以加快开发速度.

我发现的另一个选项叫做Windows便携设备.显然,它是一个API,可以与实现PTP和MTP标准的设备进行通信.它是基于COM的,据我所知,它没有.Net包装器.然而,这不是一个节目塞子.我可以P/Invoke我需要的功能或编写托管C++ DLL在我的应用程序中使用与摄像头通信.

我正在寻找有WPD经验的人给我指点.我仔细阅读了文档并看到了传输图像和删除图像的参考.但是,我没有看到提取照片,获取预览图像或说焦点/自动对焦的命令.

obe*_*lix 3

WPD api 提供命令 WPD_COMMAND_STILL_IMAGE_CAPTURE_INITIATE

我不确定你的相机是否支持它,但应该很简单就能找出来。如果您可以从驱动程序开发套件中获取“wpdinfo”工具并在连接相机的情况下启动它,然后向其发送 WPD_COMMAND_CAPABILITIES_GET_SUPPORTED_COMMANDS 命令并查看它是否支持静态图像捕获命令。如果是的话你可以尝试一下。