0

我可以成功地将刚刚使用 kEdsSaveTo_Host 拍摄的图片下载到磁盘并捕捉事件。

但是,由于各种原因,我不需要立即将其下载到电脑上,而是拍摄,然后浏览相机上可用的内容,获取最新图像,然后将其删除。

佳能 SDK 可以做到这一点吗?我真的无法使用 kEdsSaveTo_Camera。如何浏览 SD?我如何下载图像?我可以用佳能 sdk 做些什么,还是应该简单地释放相机,然后使用 Windows API 浏览内容、下载和删除图像?

先感谢您!

4

1 回答 1

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 文件的底部找到最相关的部分。

于 2016-06-30T15:26:44.677 回答