Фотографирование фотокамерами Canon c управлением из 1С




Иногда, бывает, возникает необходимость фотографировать что-нибудь и сразу сохранять изображения в информационную базу. Цель настоящей разработки — предоставление такой возможности с использованием Canon SDK.

Реализована возможность фотографировать что-нибудь и получать изображение в информационную базу. Использован Canon SDK. Это начальная версия проекта, она позволяет получить с камеры изображение в виде строки Base64, которой закодированы ДвоичныеДанные.

Библиотека CameraDriver.dll расчитана на архитектуру x86, должна быть зарегистрирована с помощью RegAsm от .Net 4

Пример использования включен. CANON SDK (EDSDK.DLL) не включен. Его можно получить, обратившись в https://www.didp.canon-europa.com/, например. (или найти на просторах интернета 🙂 )

Огромная благодарность  Johannes Bildstein https://www.codeproject.com/Articles/688276/Canon-EDSDK-Tutorial-in-Csharp за .NET-обертку EDSDKLib.dll для CANON API EDSDK.DLL.

UPD: COM-библиотека доработана до внешней компоненты. Добавлена поддержка IInitDone и ILangExtender, реализована передача в 1С внешнего события о получении изображения (можно делать серию фоток, не закрывая форму Preview)

UPD2: CANON SDK (EDSDK.DLL) обычно входит в состав EOS Utility, которая легко доступна на сайте Canon http://gdlp01.c-wss.com/gds/0/0200004580/01/euw2.14.20a-updater.zip

UPD3: в УТ2.3 для Украины добавлен общий модуль и управляемая форма для фотографирования товара

20 Comments

  1. user707730_kv

    Добрый день при запуске выдает вот эту ошибку

    Ошибка инициализации работы с камерами:{ВнешняяОбработка.РаботаСКамерамиCanon.МодульОбъекта(10)}: Ошибка при вызове конструктора (COMОбъект): -2147221164(0x80040154): Класс не зарегистрирован

    Ошибка инициализации работы с камерами:

    Reply
  2. Anikrion

    Добрый день! Попробуйте regasm с ключом /codebase

    Reply
  3. Anikrion

    И, на всякий случай, уточню, EDSDK.DLL лежит в пределах досягаемости по Path?

    Reply
  4. user707730_kv

    dll кинули в один из каталогов переменной Path оттуда её зарегили, все равно при создании объекта в 1С не видит эту компоненту (Ошибка при попытке создать com-объект)

    Reply
  5. Anikrion

    (4) версия библиотеки под x86. Может быть у Вас платформа x64? Попробовал на паре виртуальных машин — зарегистрировалось аж бегом.

    Reply
  6. Anikrion

    (4) к Вам не проходят личные сообщения почему-то

    Reply
  7. Wrols

    Андрей, добрый день!

    Не работает (

    Система: windows 7, 32-битная. DLL зарегистрировал — «Типы зарегистрированы успешно», положил dll-ки в «c:Program Files1cv8common», оттуда и зарегистрировал, в PATH этот путь прописал. EOS Utility 2 поставил (из него снимок камера делает).

    Ошибки при открытии обработки ТестВК

    на 8.3.10.2466: Ошибка инициализации работы с камерами:{ВнешняяОбработка.РаботаСКамерамиCanon.МодульОбъекта(10)}: Ошибка при вызове конструктора (COMОбъект): -2147221164(0x80040154): Класс не зарегистрирован

    на 8.2.19.130: Ошибка инициализации работы с камерами:{ВнешняяОбработка.РаботаСКамерамиCanon.МодульОбъекта(10)}: Ошибка при вызове конструктора (COMОбъект): Unknown error 0x80131524: Unknown error 0x80131524

    Можете подсказать в чем может быть проблема?

    Reply
  8. Wrols

    Хм… Возможно перезагрузка компьютера помогла.

    Работает! )

    Reply
  9. Johny_v

    Добрый день. Не подскажите какие модели Canon будут работать с ним?

    Reply
  10. Johny_v

    Добрый день. При фотографировании выдает ошибку. Сталкивались с этим?

    Reply
  11. Anikrion

    (9) Добрый день! Мы пробовали с 1200D, c 50D, c 300d и 350D

    Reply
  12. Anikrion

    Походу автофокус не отработал.

    Reply
  13. Namaskar2

    Добрый день. Мне нужно на компе увидеть картинку с камеры (EOS600D), расположить предмет фото в кадре и нажать на кнопку «Сделать фото», которое потом запишем в 1С. Насколько я понял эта библиотека такое позволяет? Что мне достаточно скачать, чтобы выполнить задачу? интерфейс в 1С можем написать сами, главное чтоб документация к dll была.

    Reply
  14. Anikrion

    На 600М не тестировали, мы игрались с 1200D, 50D, 350D. Но по идее да.

    Reply
  15. Anikrion

    (13) Документации по дллке вы там не особо найдете, но пример как с ней работать из 1С увидите. Если что — пишите, чем смогу-помогу.

    Reply
  16. DveriN

    Есть ли какая-либо «горячая» клавиша для кнопки с изображением фото в окне получения изображения?

    Reply
  17. Anikrion

    (16)пробел по идее. Комбинаций не вешал, чтоб не путать с 1сным обработчиком. Если нужно, можно навестить и перекомпилить.

    Reply
  18. Dwiss

    Подскажите есть ли решение под УФ?

    Хочу в 1С Розницу 2 сделать расширение — кнопочку в карточке номенклатура, чтобы туда картинка с камеры попадала.

    На ИС есть подобное но там с вебкамерой, пробовал качество не то, хочется получше.

    Ваша компонента будет работать с УФ?

    Reply
  19. Anikrion

    (18) добрый день, что-то мне с инфостарта сообщения в спам улетели.

    Честно говоря, я не пробовал, но не вижу повода не работать. У меня сейчас под руками живого Canona нет, на выходных могу глянуть.

    Reply
  20. Anikrion

    (18) Дмитрий, простите, обманул Вас. Давно дело было, запамятовал. В примере

    Конфигурация УТ2.3 с примером в виде упр. формы

    как раз на УФ сделано

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *