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

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

本文关键字:SD 浏览 图像 c++ EOS SDK      更新时间:2023-10-16

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

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

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

提前感谢!

您可以通过调用EdsGetChildCount, edsgetchilddatindex和EdsGetVolumeInfo或EdsGetDirectoryItemInfo来遍历文件系统。

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

对于每个卷,您可以像之前一样获取文件和文件夹,但是您传递的不是相机指针,而是卷指针。要获取有关文件或文件夹的信息,请使用EdsGetDirectoryItemInfo。该函数返回的结构体声明它是文件夹还是文件。

如果它是一个文件夹,你可以重复上面的操作,但当然要使用文件夹指针而不是卷。

要下载一个文件,你可以像使用SaveTo_Host一样使用files指针。

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

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