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

我希望得到一些关于实现看似简单目标的一般指导.我有一个数码单反相机(佳能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经验的人给我指点.我仔细阅读了文档,并看到了传输图像和删除图像的参考.但是,我没有看到提及拍照,获取预览图像或说焦点/自动对焦的命令.

WPD api提供命令WPD_COMMAND_STILL_IMAGE_CAPTURE_INITIATE

我不确定你的相机是否支持它,但它应该很容易找到.如果您可以从驱动程序开发工具包中获取“wpdinfo”工具并在连接相机的情况下启动它,则向其发送WPD_COMMAND_CAPABILITIES_GET_SUPPORTED_COMMANDS命令并查看它是否支持静态图像捕获命令.如果那么你可以尝试一下.

相关文章

Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...
Windows文件操作基础代码 Windows下对文件进行操作使用的一段...
Winpcap基础代码 使用Winpcap进行网络数据的截获和发送都需要...
使用vbs脚本进行批量编码转换 最近需要使用SourceInsight查看...