我可以成功地将使用kEdsSaveTo_Host拍摄的照片下载到磁盘并捕捉事件。
但是,出于各种原因,我不需要立即将其下载到电脑上,而是进行拍摄,然后浏览相机上可用的内容,获取最新图像,然后将其删除。
canon SDK可以实现吗?我不能真正使用kEdsSaveTo_Camera。我如何浏览SD?我如何下载图像?这是我可以用canon sdk做的事情,还是应该简单地发布相机,然后使用Windows API浏览内容,下载和删除图像?
提前谢谢你!
答案 0 :(得分:1)
您可以通过调用EdsGetChildCount,EdsGetChildAtIndex和EdsGetVolumeInfo或EdsGetDirectoryItemInfo来浏览文件系统。
基本上,使用相机指针作为参数调用EdsGetChildCount以获取卷数。 使用EdsGetChildAtIndex(再次使用相机指针作为参数)遍历每个卷,并使用EdsGetChildAtIndex调用中的音量指针调用EdsGetVolumeInfo以获取有关卷的信息。
对于每个卷,您可以像获取文件和文件夹之前那样执行相同操作,但不是使用相机指针将卷指针传递给它。 要获取有关文件或文件夹的信息,请使用EdsGetDirectoryItemInfo。 如果它是文件夹或文件,则此函数返回的结构。
如果是文件夹,您可以再次重复上述操作,但当然使用文件夹指针而不是卷。
要下载文件,您可以使用SaveTo_Host执行相同操作并使用文件指针。
如果你不介意阅读C#,我已经在这个项目中实现了所有这些:http://www.codeproject.com/Articles/688276/Canon-EDSDK-Tutorial-in-Csharp
您可以在Camera.cs文件的底部找到最相关的部分。