Web-камера со сканером qr-кодов

10.03.13

Разработка - Разработка внешних компонент

Пример работы с web-камерой из 1С с распознаванием qr-кодов. Компонент работы с веб-камерой представлен ActiveX-объектом, выполненным для работы в среде CLR (Microsoft Framework v2.0.50727) x32. В основе работы с видеопотоком лежит библиотека AForge, а за распознавание qr-кодов отвечает библиотека ZXing. Пример представлен вместе с исходными кодами проекта для MS Visual Studio 2010.

Скачать файлы

Наименование Файл Версия Размер
WebCameraPlayerAxCtrl.rar
.rar 2,19Mb
100
.rar 2,19Mb 100 Скачать

Для работы с компонентой требуется зарегистрировать ее в реестре для COM-взаимодействия. Сборка собрана под х32 (Microsoft Framework v2.0.50727). Этот момент следует учитывать при регистрации сборки в х64 системах, где параллельно существуют обе версии Framework. Все файлы примера доступны в архиве для скачивания и расположены в трех папках:

dll-com (файлы компонента для регистрации и библиотеки, а так же пример регистрации в файле register_me_32.bat )

WebCameraPlayerAxCtrl (исходные файлы проекта компонента для MS VS 2010)

Пример работы веб-камеры (файл внешней обработки для 1С где приведен пример работы с видеокамерой)

Сборка не подписана, поэтому при регистрации следует указывать параметр "/codebase" для задания пути в реестре, по которому следует искать сборку.

Кратко о принципах работы с компонентой:

На форме размещаем элемент управления ActiveX: "WebCameraPlayerAxCtrl.WebCameraPlayerControl"

для элемента управления необходимо назначить обработчки событий:

CustomingSizeVideoSourceInTargetWindowEventTrue (позволяет "подогнать" размер экрана видеокамеры на форме, под текущее разрешение камеры. Данные о видимой области изображения веб-камеры находятся в свойствах компонента frame_VisibleClipBoundsWidthframe_VisibleClipBoundsHeight)

QRCodeToPlaintTextEventTrue (срабатывает при удачном декодировании qr-кода с изображения веб-камеры, расшифрованный текст расположен в свойстве компонента PlaintTextQRCode)

ImageToBase64StringEventTrue (срабатывает после вызова метода компонента GetCurrentImage(), после того как компонент сохраняет в свойстве CurrentImageToSaveBase64 , текущее, на момент вызова метода, изображение, полученное с веб-камеры; хранится изображение в строковом формате Base64)

BarCodeImageToSaveBase64EventTrue (срабатывает после вызова метода компонента GetBarCodeImage(ТекстДляКодирования, 12),   Base64-версия картинки qr-кода хранится в свойстве компонента BarCodeImageToSaveBase64. 12 - это код выбора конструктора ZXing, который отвечает за кодирование текста в QR-формат. Коды других вариантов кодирования можно посмотреть в исходных файлах проекта.)

Метод StopCurrentVideoSource() компонента, стоит вызывать перед закрытием формы обработки, где расположен компонент, для корректного отключения от видеопотока.


Ссылки на проекты исходных кодов:

http://zxingnet.codeplex.com/   (библиотека для работы со штрих-кодами)

http://stackoverflow.com/  (собственно здесь был найден пример ActiveX-компонента и работа с событиями при регистрации .NET сборок для COM-взаимодействия)

http://www.aforgenet.com/  (библиотека для работы с видеопотоками)

P.S.: перед регистрацией компонента стоит предварительно подключить к компьютеру камеру (реальную или виртуальную).

См. также

Медиадисплей. Рекламный информационный монитор для покупателя.

Разработка внешних компонент POS терминал Рабочее место Розничная торговля Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Реклама, PR и маркетинг Управленческий учет Платные (руб)

Монитор покупателя может отображать текущую покупку на кассовом месте, показывать видеорекламу, баннеры, во время простоя разворачивать рекламу на весь экран. Можно использовать в качестве графического меню-борда в кафе и видеовывески. Управление выводом на телевизор через hdmi-приставку на базе Windows или Android. В качестве устройства отображения можно использовать Android-планшеты, фоторамки с Android, монитор любого Windows-компьютера, доступного по сети. Настраивается ЛЮБОЙ ДИЗАЙН экрана!

16800 руб.

30.05.2017    52097    34    69    

43

Внешняя компонента для сканирования (замена TWAIN-компоненты БСП) (Native Win 32/64)

Разработка внешних компонент Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Внешняя компонента позволяет работать c TWAIN-совместимым оборудованием (сканерами, камерами) . Полностью совместима со стандартной TWAIN-компонентой из БСП и может применяться как ее замена без изменения вызовов, при этом может работать с 64-разрядной платформой, а так же имеет расширенную функциональность, например, сохранение результата непосредственно в PDF без использования сторонних утилит. Прекрасно работает на сервере, тонком клиенте и веб-клиенте (проверена работа в браузерах Google Chrome, Mozilla Firefox и Microsoft Internet Explorer).

2400 руб.

12.05.2020    26242    131    99    

83

Внешняя компонента для подключения 1С к телефонии Asterisk

Разработка внешних компонент Телефония, SIP Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Внешняя компонента выполнена по технологии Native API для 1С 8.х, обеспечивает доступ к программным АТС Asterisk (FreePBX, Elastix) через AMI интерфейс. Через него можно управлять многими функциями Asterisk (определение номеров, перевод звонков, набор телефона и т. д.)

2400 руб.

04.05.2018    44973    117    64    

60

Внешняя компонента печати PDF (Native Win 32/64)

Разработка внешних компонент Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Внешняя компонента позволяет печатать PDF файлы непосредственно из 1С, не используя при этом сторонних программ. Прекрасно работает на сервере, тонком клиенте и веб-клиенте. Основана на проекте PDFium из состава проекта Chromium/Chrome

1500 руб.

17.09.2018    35072    104    123    

111

Мастер создания внешних компонент 1С (технология COM) для DELPHI 6/7/8/2005/2006/2007/2008/2010/XE/XE2/XE3

Разработка внешних компонент Платформа 1С v8.3 Платные (руб)

Средство для сверхбыстрой разработки внешних компонент 1С:Предприятия 7.7 и 8 по технологии COM на всех версиях DELPHI, начиная с 6.

2000 руб.

28.03.2013    53997    35    14    

68

QR-код с логотипом компании (обычная и управляемая форма)

Разработка внешних компонент Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Как известно, стремление сделать свою рекламную продукцию запоминающейся и выделяющейся — верный путь к успеху. Сегодня, мы поговорим с вами о том, что можно сделать с обычным черно-белым QR-кодом, чтобы он стал более живым и привлекательным. Если вам не терпится попробовать сделать QR-код с логотипом компании, то эта обработка для вас!

2400 руб.

22.06.2016    30839    4    4    

8

Внешняя компонента 1С и С++. Продолжаем разговор.

Разработка внешних компонент Платформа 1С v8.3 Бесплатно (free)

А давайте запилим 8.3.26 до релиза, или оповещение с сервера...

19.02.2024    4036    starik-2005    28    

52

Внешние компоненты 1С и язык C++

Разработка внешних компонент Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Некоторые практические аспекты создания внешних компонент на языке С++ для платформы 1С 8.3++.

26.01.2024    4772    starik-2005    32    

39
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. DoctorRoza 10.03.13 19:01 Сейчас в теме
Из-за личной безграмотности не понимаю зачем это нужно, но написано умно! :) Возьму на заметку! :)
2. пользователь 20.03.13 00:26
Сообщение было скрыто модератором.
...
3. Геннадьевич 18 22.03.13 18:35 Сейчас в теме
Очень интересно.
Как быстро происходит опознание кода? Какова точность? Это тестировалось?
4. andrei.k 27.03.13 08:11 Сейчас в теме
Спасибо большое. Для первичной внутренней инвентаризации и учета техники нашего отдела АСУ самое то. Вместо вэб-камеры можно подключить камеру смартфона, там разрешение побольше.
5. Геннадьевич 18 27.03.13 11:40 Сейчас в теме
(4) andrei.k, Уже пробовали? Как результаты?
6. andrei.k 27.03.13 11:56 Сейчас в теме
(5) Геннадьевич, не пробовал, не качал. Мне идея понравилась. Так как есть проблема, сейчас над ней и думаем, по учету техники. И для входящей очень даже ничего. Сканер штрих-кода еще не скоро купим, конкурсы долбанные, да и то пока только для делопроизводителей в документооборот. А так исходники есть, напишем свое что-нибудь.
7. Геннадьевич 18 27.03.13 12:03 Сейчас в теме
(6) andrei.k, Понятно. Бюджетная организация?
8. andrei.k 27.03.13 12:46 Сейчас в теме
9. djvu 143 28.03.13 16:32 Сейчас в теме
Как быстро происходит опознание кода? Какова точность? Это тестировалось?


при fps > 5-7 ловит смытые и наклонные поверхности, задержек визуальных при распознании не замечал. Разрешение не критично, 320 все ловит нормально даже в условиях не очень хорошего освещения. Опять же обрабатывать можно не весь экран, а некоторую его часть.
При fps < 5 не ловит статику (во всяком случае на той камере, без автофокуса, на которой проверяли) соответственно код не распознает.
10. Геннадьевич 18 28.03.13 18:08 Сейчас в теме
(9) djvu, Спасибо, вот это ответ, который я хотел услышать, ясно и четко.
11. пользователь 16.04.13 10:58
Сообщение было скрыто модератором.
...
12. BAMPER 06.05.13 05:10 Сейчас в теме
Огромный + за данную разработку!!!
У меня при открытии выскакивает:
{Форма.Форма.Форма(18,2)}: Переменная не определена (РаботаСоСтрокамиРасширенная)
<<?>>РаботаСоСтрокамиРасширенная.ОРВИнициализироватьПоУмолчанию(об_РгВ);
{Форма.Форма.Форма(57,2)}: Переменная не определена (РаботаСоСтрокамиРасширенная)
<<?>>РаботаСоСтрокамиРасширенная.ОРВПолучитьМассивСовпаденийСШаблоном(об_РгВ, тек_стр_ТЗ.тек_СтрокаСВебКамеры, шаблон_ПоискРгВ, массив_Результаты, РазмерМассива);

Что можно сделать?
13. BAMPER 20.05.13 11:16 Сейчас в теме
Все работает как, надо =)
Распознает очень быстро, особенно если разрешение выставить максимальное.
Есть правда еще вопрос: Можно ли установить время(или паузу) до следующего распознавания?
А то значение PlaintTextQRCode слишком быстро меняется.
14. djvu 143 21.05.13 16:44 Сейчас в теме
BAMPER
Самое простое, что приходит на ум - распознал картинку, игнорируешь следующие кадры до какого либо кода подтверждения.
15. Marina__ 04.06.13 00:12 Сейчас в теме

У меня при открытии выскакивает:
{Форма.Форма.Форма(18,2)}: Переменная не определена (РаботаСоСтрокамиРасширенная)
<<?>>РаботаСоСтрокамиРасширенная.ОРВИнициализироватьПоУмолчанию(об_РгВ);
{Форма.Форма.Форма(57,2)}: Переменная не определена (РаботаСоСтрокамиРасширенная)
<<?>>РаботаСоСтрокамиРасширенная.ОРВПолучитьМассивСовпаденийСШаблоном(об_РгВ, тек_стр_ТЗ.тек_СтрокаСВебКамеры, шаблон_ПоискРгВ, массив_Результаты, РазмерМассива);

Что можно сделать?


То же самое. Как исправить?
16. djvu 143 10.09.13 16:21 Сейчас в теме
(105) Gazza,
Файл без ошибок во вложении.
Прикрепленные файлы:
Web-камера.epf
17. Bond 13.10.13 21:13 Сейчас в теме
djvu, скажите пожалуйста, PDF417 читает? и можно ли переделать на УФ?
18. djvu 143 23.10.13 16:01 Сейчас в теме
to Bond
За декодирование ШК отвечает библиотека - ZXing, насколько я помню - с PDF417 она справляется.
По поводу управляемых форм - компонента сделана как ActiveX, т.е. ей должно быть все равно куда вы ее влепите и чем будут выступать обработчики событий.
19. borrman 16.04.14 20:03 Сейчас в теме
(18) К сожалению, не все равно. ТК не работает с ActiveX (
20. Oleeeg 08.12.14 11:53 Сейчас в теме
А как зарегистрировать в х64 системе?
При изменении пути на Framework64\v2.0.50727 все-равно пишет ошибку про недопустимую сборку NET
21. djvu 143 30.01.15 11:54 Сейчас в теме
Дык исходники для этого и выложил, пересобрать надо под x64 и/или держать 32-битную версию фреймверка и к ней путь прописать в системной path
22. iov 406 12.03.15 18:57 Сейчас в теме
(21) djvu, не будет ли наглостью попросить пересобрать под 64 x ? Ибо даже установка VS и курение мануалов так и не дало желаемого результата.
23. kill3rl88p 19 29.10.15 13:44 Сейчас в теме
Добрый день, на планшете с Win 10 работать будет? или надо пересобирать? или даже это не поможет?)
24. djvu 143 29.10.15 17:44 Сейчас в теме
(23)
В новом браузере по идее - нет (вроде бы там от ActiveX - отказались совсем). В 1С и старой версии эксплорера должно (при условии, что на этой аппаратной платформе работают Aforge (и Zxing)).

В общем, многое зависит от аппаратной плаформы, что под нее умеют фреймверки майкрософтовские (Aforge - вроде бы не порт, а вот на счет ZXing - не уверен).
25. arman1997 19 21.12.22 13:22 Сейчас в теме
Здравствуйте. Можно уточнить? В обработке есть функция которая считывает qr-код по изображению переданному в виде base64 строка?
26. djvu 143 21.12.22 17:22 Сейчас в теме
(25) arman1997

У вас есть base64-строка кода и вы хотите узнать что закодировано qr-кодом?
Оставьте свое сообщение