За основу был взят проект с сайта Codeproject и переделан под свои нужды. Сделано всё на основе библиотеки Ozeki Camera SDK. Как пользоваться библиотекой написано здесь. По заявлению авторов библиотеки сканируются и распознаются следующие форматы кодов:
1D: CODABAR, CODE 39, CODE 93, CODE 128, EAN 8, EAN 13, ITF, MSI, PLESSEY, RSS 14, RSS EXPANDED, UPC-A, UPC-E,
2D: AZTEC, DATA MATRIX, MAXI CODE, PDF417, QR CODE
Не знаю как штрих-коды, но QR распознает более-менее нормально. Скорость распознавания во многом зависит от освещения и от качества картинки вебкамеры, а также и от точки фокуса (особенно критично для штрих-кодов). Если носитель кода глянцевый, желательно чтобы не бликовал. Вобщем нужно наловчиться.
Как пользоваться:
Вариант 1: Если программу просто запустить, она будет просто сканировать коды и отображать результат в своем окне.
Вариант 2: Если при запуске в качестве параметра указать имя файла результата (например так: «QRWebCam.exe result.txt»), она распознает код, автоматически закроется, а результат запишет в указанный файл. Но к сожалению 1С-ная функция ЗапуститьПриложение() не умеет запускать программы с параметрами (можно конечно через bat-файл, но лично меня смущает появляющееся черное консольное окно), поэтому был придуман вариант 3.
Вариант 3: В каталоге программы можно создать одноименный ini-файл (QRWebCam.ini) и прописать в нём путь и имя выходного файла — будет работать аналогично варианту 2, но запускать можно без параметров, результат сканирования будет помещен в прописанный файл. Пример содержимого ini-файла:
d:QRWebcam
esult.txt
Для использования в 1С можно написать такой код:
ЗапуститьПриложение("d:QRWebcamQRWebCam.exe", "d:QRWebcam", Истина);
Т = Новый ТекстовыйДокумент;
Т.Прочитать("d:QRWebcam
esult.txt",КодировкаТекста.UTF8);
QRКод = Т.ПолучитьСтроку(1);
Если вдруг кто захочет перекомпилить под себя, исходник прилагается.
Крутяк. Нужно будет запомнить и опробовать 🙂
Здравствуйте.
Приведите пример QRWebCam.ini?
(2) plutonii, структуры, как таковой, нет. Это обычный текстовый файл, первая строчка которого — это путь и имя файла результата. Например: d:QRWebcam
esult.txt
расширение «ini» придумал просто так — первое, что в голову взбрело 🙂
Добавил скриншот.
Благодарю, на выхах пощупаю эту тему)
Классная обработка. Можно опробовать данную обработку в программе лояльности клиентов. А именно вместо депозитных, дисконтных (скидочных) карточек. Но тогда нужно еще и мобильное приложение с привязкой к базе клиента. Многие заведения общепита работают на мобильных терминалах (наладонники). Можно было бы сканировать QR код с экрана телефона клиента не отходя от столика.
Благодарю, а то мой кирпич, под названием «телефон» умеет только звонить. Теперь не надо постоянно дёргать товарищей.
Скачал только исходник и вот сразу:
«Не удалось найти имя типа или пространства имен «Ozeki» (пропущена директива using или ссылка на сборку?)»
Скачал демки с озеки — они нормально компилятся (но при этом не видят камеру в ноуте), в чем может быть дело?
ps#k8SjZc9Dxk
добавил референс на озеки.длл, теперь находит пространста имен ozeki.media но вот далее нет:
Имя типа или пространства имен «MediaHandlers» отсутствует в пространстве имен «Ozeki.Media» (пропущена ссылка на сборку?)
(7) nano1c, где-то в настройках проекта нужно указать пути на каталоги Озеки (sdk или библиотеки). Точнее сейчас не подскажу, давно было, но была та же проблема.
(7) nano1c, в студии меню Проект/Добавить ссылку…/Обзор и добавить туда библиотеки по реальным путям. У меня там добавлены VoIPSDK.dll и NVA.dll.
(9) а где взять эти компоненты? Да и текущая версия ozeki.dll не содержит те пространства имен что в исходниках — видимо нужна именно та старая версия.
Вы пишете :
Я проверил все она запускает. Командную строку делаешь с параметрами и все.
Ну и работает. с ини файлом у меня не сработало
Попробовал на планшете(вин). И получил проблему. В планшете две камеры. И программа видит только переднюю(ну да она же позиционируется как Вэб), а хотелось бы переднюю и как их переключать не понятно. Исходники даже не качал. ибо не владею.
А на стационаре и с усб веб камерой все прошло на ура. Даже в форму вставил поддержку.
Досадно.
(10) Держите (ссылка действительна 14 дней):http://dropmefiles.com/HFyHb
(11)
Ну и работает. с ини файлом у меня не сработало
Уже не помню подробности, но на 8.3.5 у меня не получилось через ЗапуститьПриложение() запустить с параметрами (либо не запускалось, либо кушало параметры). Возможно и я что-то не так делал, не было времени разбираться. А с ини-файлом вы что-то не досмотрели, т.к. исправно работает у многих людей уже долгое время.
(12) Да, выбора камеры я не предусматривал, не думал прога будет работать и на планшетах, а на ноутах камера обычно одна, поэтому просто брал 1-ю из массива доступных. Если очень критично и актуально, могу на досуге добавить выбор камеры через параметр.
Ну если посмотришь было бы здорово.
Мы купили Виндоус планшеты и как заставить его распознать штрихкод без подключения сканера не понятно. Хотя там есть много приложений в магазине, но заставить это приложение распознать первый попавшися ШК и вернуть его содержимое в 1С, не знаю как.
А тут даже работы на интеграцию, было не более 4 часов.
Но на обычном компе, где 1 камера все прошло гладко, а на планшете, не очень.
Выложите пожалуйста библиотеки. Не могу найти nva и voipsdk.
(17) Вот архив:http://dropmefiles.com/NXgNN
Ссылка актуальна до 14 дней
Здравствуйте, не могли бы вы выложить еще раз проект на «депоситфайл»?
(18) а можно еще раз библиотеки загрузить на deposit ?
вебка конечно это жесть.
Совет: Используйте мобильник или планшет(дешевле чем ТСД) + переносной зарядный блок, иначе батарея будет садиться.
Многие программы по работе с ТСД работают на андроидах и WinCE. Например Cleverence и Datamobile.
(18) Dave,
не пробовали использование нескольких камер одновременно ?
и сканирование нескольких штрихкодов с одного захода?
P.S. можете тот выложить файлик еще раз?
(20) Добрый день. Выложите исходники с библиотеками еще раз, пожалуйста .
Классная идея !
Доброе время.
Запускаю утилиту, камера инициализируется (горит индикатор) а изображения нет.
Куда копать?
Здравствуйте! А можно как-то переписать, чтобы сканировался какой-либо текст, после определенно заданного текста или как-нибудь попроще, а не bar code и каким-нибудь путем где нибудь отображался этот текст или не подскажите другие похожие решения.
(25) Решение найдено. Касперский блокировал.
Автору огромный плюс в карму! 🙂
Здравствуйте, есть вопросы по работе приложения с Вами можно как то связаться?
Мой почтовый адрес stall2706@yandex.ru