gifts2017

Пример считывания штрих кода с помощью web/usb камеры

Опубликовал Андрей Дадеко (FoxDW) в раздел Программирование - Внешние компоненты

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

За основу были взяты материалы из публикации http://infostart.ru/public/177082/

Изменения в компоненте были сделаны для того что бы можно было удобно напрямую из 1С управлять списком активных камер и их возможным разрешением работы.

Добавлена переменная CamList, массив текстовых значений, заполняется при включении камеры. Формат строки: Наименование камеры;КоординатаХ;КоординатаУ

Добавлена Процедура CamON (НаименованиеКамеры, КоординатаХ,КоординанаУ) Процедура включает камеру в выбранно режиме работы. Если не передавать значения разрешения, включается в максимально возможном.

Изменения в компоненте:

public FilterInfoCollection videoDevices;

public Object CamList;

 

public void GetCamList()

        {

            String temp;

            ListMassCamString = new List();

            videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

            for (int vid_count = 0; vid_count < videoDevices.Count; vid_count++)

            {

             VideoCaptureDevice videoSource = new VideoCaptureDevice(videoDevices[vid_count].MonikerString);

                for (int cid_count = 0; cid_count < videoSource.VideoCapabilities.Length; cid_count++)

                {

                 temp = "" + videoDevices[vid_count].Name + ";" + videoSource.VideoCapabilities[cid_count].FrameSize.Width + ";" + videoSource.VideoCapabilities[cid_count].FrameSize.Height + "";

                 MassCamString.Add(temp);

                }

            }

            CamList = MassCamString.ToArray();

        }

 

public void CamON(String CamName, int X = 0, int Y = 0)

        {

            videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

            for (int vid_count = 0; vid_count

            {

                if (videoDevices[vid_count].Name == CamName)

                {

                    VideoCaptureDevice videoSource = new VideoCaptureDevice(videoDevices[vid_count].MonikerString);

                    if (X != 0 & Y != 0)

                    {

                        videoSource.DesiredFrameSize = new Size(X, Y);

                    }

                    OpenVideoSource(videoSource);

                    break;

                }

            }

 

        }

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

Наименование Файл Версия Размер
Архив с компонентой и внешней обработкой 130
.rar 1,66Mb
19.03.13
130
.rar 1,66Mb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
2. Владимир Клименко (KliMich) 16.02.14 10:28
3. Dave Nikolsky (dave2000) 16.04.15 11:10
Под Win7 х64 будет работать?
4. Фанис A (fanis2005@ya.ru) 11.07.15 15:31
{Форма.Форма.Форма(4)}: Поле объекта не обнаружено (CamList)
CamList = ЭлементыФормы.ЭлементУправления1.CamList;
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа