Ошибка EdsCreateImageRef Canon Digital SDK (EDSDK)

Я пытаюсь использовать Canon Eos Digital SDK (EDSDK) для декодирования изображения камеры CR2 для отображения в графическом интерфейсе рабочего стола.

Я запускаю первые несколько методов следующим образом:

err = EDSDK.EdsInitializeSDK();
err = EDSDK.EdsCreateFileStream(
                fullpath, 
                EDSDK.EdsFileCreateDisposition.OpenExisting, 
                EDSDK.EdsAccess.Read, 
                out inStream);
err = EDSDK.EdsCreateImageRef(inStream, out imgRefPtr);

И переменная err остается как EDS_ERR_OK до тех пор, пока она не выполнит последнюю строку выше, где она станет EDS_ERR_FILE_FORMAT_UNRECOGNIZED.

Камера, которая сделала снимок, была EOS 5DS R, которая поддерживается с версии 3.2.1 (наша текущая версия). Кроме того, изображение CR2 можно открыть в программе просмотра необработанных изображений Digital Photo Professional 4.

Любые предложения о том, как преодолеть ошибку неизвестный формат файла при попытке создать ссылку на изображение?


person David Button    schedule 22.02.2016    source источник
comment
инструменты для работы с изображениями в версиях 3.x все еще кажутся неработоспособными. У меня были проблемы с сохранением фотографий, тогда как тот же код отлично работает с версиями 2.x.   -  person Johannes Bildstein    schedule 23.02.2016


Ответы (2)


Я только начал использовать EDSDK v 3.8.0. У меня была та же проблема, но я смог выяснить, что ее вызвало: версия 1.x ищет библиотеки dll в рабочем пути, а версии 2.x и 3.x выполняют поиск в месте расположения исполняемого файла с использованием dll. . Поэтому копирование файлов в каталоги отладки и выпуска моего проекта Visual Studio исправило это.

person marc40000    schedule 20.09.2018
comment
Вы спасатель - person George; 19.09.2019

Я пытаюсь решить аналогичную проблему прямо сейчас с той же камерой и Canon SDK. В журнале изменений для этого релиза указано:

«Добавлена ​​поддержка функций обработки RAW. Добавлена ​​поддержка функций обработки RAW для бета-версии 64-разрядного модуля. Обратите внимание: поддерживаемые камеры ограничены, как показано ниже, для функций обработки изображений в 64-разрядном модуле. EOS 5DS / EOS 5DS R / EOS REBEL T6s / EOS 760D / EOS 8000D / EOS REBEL T6i / EOS 750D / EOS Kiss X8i / EOS M3"

Вы пытались выполнить обработку изображения через 64-битное приложение?

person pocruadhlaoich    schedule 22.02.2016
comment
Я пробовал как 32-битные, так и 64-битные тестовые приложения. Интересно, что я получаю ту же ошибку при попытке декодирования с помощью EOS 5D Mark III, где поддержка была добавлена ​​​​в версии 2.11. Кроме того, я пытаюсь использовать библиотеку декодирования изображений libraw с большим, но не полным успехом. - person David Button; 23.02.2016
comment
В 32-битной версии я также попробовал камеру Canon 5D Mark II и столкнулся с той же проблемой. Похоже, Canon сломала EdsCreateImageRef как для загрузки файлов .cr2, так и для разработки потокового изображения. Дэвид, пожалуйста, дайте мне знать, если вам больше повезет с libraw! - person pocruadhlaoich; 24.02.2016
comment
Мне удалось успешно декодировать изображения с помощью Libraw. Будучи разработчиком C#, я должен был сначала выполнить P/Invoke и маршалировать необходимые функции и структуры, а затем следовать методологии, аналогичной той, что описана в файле Samples/cdraw_emulator. Удачи тебе - person David Button; 10.03.2016