通过 Canon EOS SDK (c++) 浏览 SD 卡上的图像

Browsing images on SD card via Canon EOS SDK (c++)

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

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

canon SDK 可以吗?我真的不能过去使用 kEdsSaveTo_Camera。我如何浏览 SD?我如何下载图像?这是我可以用佳能 sdk 做的事情还是我应该简单地释放相机,然后使用 windows API 浏览内容、下载和删除图像?

提前致谢!

您可以通过调用 EdsGetChildCount、EdsGetChildAtIndex 和 EdsGetVolumeInfo 或 EdsGetDirectoryItemInfo 遍历文件系统。

基本上,以相机指针为参数调用EdsGetChildCount来获取卷数。 使用 EdsGetChildAtIndex(再次使用相机指针作为参数)遍历每个体积,并使用来自 EdsGetChildAtIndex 调用的体积指针调用 EdsGetVolumeInfo 以获取有关体积的信息。

对于每个卷,您可以执行与获取文件和文件夹之前相同的操作,但您将卷指针传递给它而不是相机指针。 要获取有关文件或文件夹的信息,请使用 EdsGetDirectoryItemInfo。 此函数 returns 声明的结构是文件夹还是文件。

如果是文件夹,您可以再次重复上述操作,但当然要使用文件夹指针而不是卷。

要下载文件,您可以使用与 SaveTo_Host 相同的操作并使用文件指针。

如果你不介意阅读 C#,我已经在这个项目中实现了所有这些:http://www.codeproject.com/Articles/688276/Canon-EDSDK-Tutorial-in-Csharp

您可以在 Camera.cs 文件的底部找到最相关的部分。