edsdk — просмотр изображений на SD-карте с помощью Canon EOS SDK (c ++)

Я могу успешно загрузить на диск только что снятую картинку с помощью kEdsSaveTo_Host и перехватить событие.

Однако по разным причинам мне нужно не загружать его на компьютер сразу, а снимать, а затем просматривать то, что доступно на камере, получать последнее изображение и удалять его.

Возможно ли это с помощью SDK canon? Я не могу пройти мимо, используя kEdsSaveTo_Camera. Как я могу просмотреть SD? как мне скачать изображение? Это то, что я могу сделать с каноном SDK или я должен просто отпустить камеры, а затем использовать Windows API для просмотра содержимого, загрузки и удаления изображения?

заранее спасибо!

0

Решение

Вы можете пройти через файловую систему, вызвав EdsGetChildCount, EdsGetChildAtIndex и EdsGetVolumeInfo или EdsGetDirectoryItemInfo.

В основном, вызовите EdsGetChildCount с указателем камеры в качестве параметра, чтобы получить количество томов.
Пройдите через каждый том с EdsGetChildAtIndex (снова с указателем камеры в качестве параметра) и вызовите EdsGetVolumeInfo с указателем объема из вызова EdsGetChildAtIndex, чтобы получить информацию о томе.

С каждым томом вы можете сделать то же, что и раньше, получить файлы и папки, но вместо указателя камеры вы передаете ему указатель громкости.
Чтобы получить информацию о файле или папке, используйте EdsGetDirectoryItemInfo.
Структура, которую возвращает эта функция, указывает, является ли она папкой или файлом.

Если это папка, вы можете повторить вышеупомянутое снова, но, конечно, используйте указатель папок вместо томов.

Для загрузки файла вы можете сделать то же самое, что и с SaveTo_Host, и использовать указатель файлов.

Если вы не возражаете читать C #, я реализовал все это в этом проекте: http://www.codeproject.com/Articles/688276/Canon-EDSDK-Tutorial-in-Csharp

Вы можете найти наиболее актуальную часть в нижней части файла Camera.cs.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector