Native ВК для работы с веб камерой

23.06.15

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

Внешняя компонента для работы с web-камерой. Написана на Delphi и работает по технологии Native API. Компонента позволяет взаимодействовать c web-камерой посредством avicap.dll. Работает в толстом, тонком и веб клиенте(через IE).

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
v8nWebCam
.zip 3,69Mb
171
171 Скачать (6 SM) Купить за 3 350 руб.

Состав архива

[Сборка CAB для IE]  -  инструмент для построения CAB архива расширения для Internet Explorer;

1Cv8.cf - пример работы с компонентой;

Delphi7Source.zip - архив с исходными текстами компоненты;

pacage.zip - архив с компонентой для загузки в макет 1С.

Использование компоненты

Подключение и установка компоненты производится стандартными методами, описанными в синтакс помощнике.

Компонента = Новый("AddIn.Компонента.ExecExtention");

Получение изображения

Получение изображения производится вызовом метода ПолучитьБМП(КодКамеры).

ЗакодированноеИзображение = Компонента.ПолучитьБМП(1);

Параметр КодКамеры - это индекс камеры в системе. Подробнее об этом можно узнать в документации к avicap.dll. Если у вас в системе только одна веб камера оставьте 1.

Поскольку Native API позволяет передавать только простые типы данных (число, строка, булево), передача изображения из компоненты в 1С происходит в виде строки Base64. Соответственно после получения изображения его необходимо сначала преобразовать в двоичные данные.

ДвоичныеДанные = Base64Значение(ЗакодированноеИзображение); // Получаем двоичные данные.

Создаем картинку следующим образом

Фотография = Новый Картинка(ДвоичныеДанные, Ложь); // Создаем картинку

П. С.

Компонента не является готовым решением и лишь иллюстрирует методы взаимодействия с камерой.

За основу взята разработка //infostart.ru/public/88060/.

См. также

Разработка внешних компонент 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 и маркетинг Управленческий учет Платные (руб)

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

18000 руб.

30.05.2017    54128    9    69    

46

Разработка внешних компонент Программист Платформа 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Платные (руб)

Внешняя компонента для конвертации PDF файлов в картинки без использования дополнительных программ. Работает на сервере и в тонком клиенте.

2400 руб.

25.06.2024    1173    3    4    

3

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

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

2400 руб.

04.05.2018    47397    124    66    

67

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

Внешняя компонента, позволяющая посылать команды и получать ответы по GraphQL протоколу из 1С.Может быть использована при интеграции. В 1С работает на стороне "клиента".

4600 руб.

27.06.2023    3652    3    0    

5

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

Позволяет автоматизировать работу с картинками. С помощью компоненты можно измерять размер изображений, поворачивать их, наносить водяные знаки, конвертировать из одного формата в другой. Будет очень полезна для интернет-магазинов и всех, кому постоянно требуется работать с различными графическими форматами. Выполнена по технологии NativeAPI. Работает с форматами: jpg (jpeg), png, bmp, gif, tif

3600 руб.

02.09.2010    77566    72    257    

191

Разработка внешних компонент Программист Платформа 1С v8.3 1C:Бухгалтерия 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 Платные (руб)

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

3000 руб.

12.05.2020    28768    138    100    

91

Разработка внешних компонент Системный администратор Программист Стажер Бесплатно (free)

Библиотека для работы с базами SQLite из 1С на основе внешней компоненты. Для Linux и Windows, бесплатно и с открытым исходным кодом!

14.01.2025    2253    bayselonarrend    14    

46

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

В статье описывается приложение-конструктор внешних компонент (native API). Конструктор упрощает процесс разработки за счет удобного добавления всех нужных функций и процедур в графическом режиме, с указанием их параметров и типов параметров. На выходе приложение генерирует готовый код на С++ и Rust и позволяет сразу приступить к реализации, без настройки API компоненты вручную.

04.12.2024    4906    kovalevdmv    26    

75
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Diversus 2331 06.04.13 12:29 Сейчас в теме
Поскольку Native API позволяет передавать только простые типы данных(число, строка, булево), передача изображения из компоненты в 1С происходит в виде строки Base64.


Вы не правы! Возвращать можно сразу двоичные данные.
Вот работающий пример возвращающий скриншот в формате JPEG с типом ДвоичныеДанные:

function TGraphicsNative.GetScreenShotFunc(RetValue: PV8Variant;
  Params: PV8ParamArray; const ParamCount: Integer;
  var v8: TV8AddInDefBase): Boolean;
Var
  Bitmap: TBitmap;
  jpeg: TJPEGImage;
  Stream: TMemoryStream;
  DC: HDC;
begin
  Bitmap := TBitmap.Create;
  jpeg := TJPEGImage.Create;
  Stream := TMemoryStream.Create;
  try

    Bitmap.Height := Screen.Height;
    Bitmap.Width := Screen.Width;
    DC := GetDC(0);
    Bitblt(Bitmap.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, DC, 0,
      0, SRCCOPY);
    ReleaseDC(0, DC);

    jpeg.Assign(Bitmap);
    jpeg.CompressionQuality := 80; // Качество JPEG

    jpeg.SaveToStream(Stream);
    Stream.Position := 0;
    V8SetBlob(RetValue, Stream.Memory, Stream.Size); //<< Возвращаем JPEG с типом ДвоичныеДанные

  finally

    // Очищаем память.
    Stream.Free;
    jpeg.Free;
    Bitmap.Free;

  end;

  Result := true;

end;
Показать
2. nextkmv 129 06.04.13 21:47 Сейчас в теме
3. Diversus 2331 07.04.13 21:28 Сейчас в теме
(2) Да не за что... Сам промучился с этим долго, пока путем проб и ошибок не получилось.
WaReZ_MEN; +1 Ответить
4. nextkmv 129 08.04.13 17:14 Сейчас в теме
Очень мало документации, особенно по интеграции в браузеры. Я к сожалению не смог найти информации по внедрению в Chrome, а в FF у меня внедрить так и не получилось. Компонента устаканивалась но при запуске FF говорил что расширение невозможно запустить.
5. CheBurator 2695 03.11.13 02:32 Сейчас в теме
Можно ли ВК использовать в 7.7...?
6. nextkmv 129 04.11.13 08:38 Сейчас в теме
Нет ВК написана на native API, которая появилась в 8.2. Но для семёрки я где то видел готовую обработку на инфостарте.
7. vitalya24 239 05.04.14 18:16 Сейчас в теме
клево, супер, я плюсанул. Только вопрос, только у меня не показывается предпросмотр перед тем как сделать снимок или у всех?
8. nextkmv 129 09.04.14 09:20 Сейчас в теме
(7) vitalya24, Пред просмотр заложен в ВК для удобства, но вы можете переписать ее исходный код прилагается.
9. Konstatine 8 12.08.14 07:23 Сейчас в теме
Спасибо! Огромнейшее! Под тонкий клиент лучшее решение!
24. igorekpanchenko 29.07.15 10:40 Сейчас в теме
Добрый день!
Помогите пожалуйста разобраться, почему форма не сохраняет полученное изображение.

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	Если АдресКартинки <> Неопределено Тогда 
		Данные = ПолучитьИзВременногоХранилища(АдресКартинки);
		ТекущийОбъект.Файл = Новый ХранилищеЗначения(Данные);
	КонецЕсли;
	Если ЭтоАдресВременногоХранилища(АдресКартинки) Тогда
        ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресКартинки);
        ТекущийОбъект.Файл = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9));
    КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
	ЭтотОбъект = РеквизитФормыВЗначение("Объект");
	АдресКартинки = ПоместитьВоВременноеХранилище(ЭтотОбъект.Файл.Получить(), Новый УникальныйИдентификатор);
	АдресКартинки = ПолучитьНавигационнуюСсылку(ТекущийОбъект.Ссылка, "Фото");
КонецПроцедуры

&НаКлиенте
Процедура Сканировать(Команда)
	
	Image = Новый COMОбъект("WIA.ImageFile"); 
	DevManager = Новый COMОбъект("WIA.CommonDialog"); 
	Image = DevManager.ShowAcquireImage();
	IP = Новый COMОбъект("WIA.ImageProcess");
	IP.Filters.Add(IP.FilterInfos("Convert").FilterID);
	IP1 = IP.Filters(1);
	Для К = 1 По IP1.Properties.Count Цикл
		Если IP1.Properties(К).Name = "FormatID" Тогда
			IP1.Properties(К).Value = "{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}";
			Прервать;
		КонецЕсли;
	КонецЦикла;
	Image = IP.Apply(Image);
	СохранитьИВывестиИзображение();
			
КонецПроцедуры

&НаКлиенте
Процедура СохранитьИВывестиИзображение()
	УдалитьФайлы(ИмяФайла); //удалим старый файл
    Image.SaveFile(ИмяФайла); //сохраним на жесткий диск объект WIA		
	АдресВХранилище = ""; //Помещаем картинку в хранилище
	ПоместитьФайл (АдресВХранилище, "C:\CurCertificate.png", , Ложь) ; //Помещаем картинку в хранилище
	АдресКартинки = АдресВХранилище; //Вставляем из хранилища
КонецПроцедуры

////////////////////////////////////////////////////////////­/////

&НаКлиенте
Процедура СделатьСнимок(Команда)
	// Получим объект формы работы с камерой
	ФормаОбработки = ПолучитьФорму("Обработка.РаботаСВебКамерой.Форма.Форма");
	// Для того чтобы ссылка на картинку во временном хранилище удалялась после 
	// закрытия формы справочника, а не формы обработки передадим последней УникальныйИдентификатор
	// формы справочника
	ФормаОбработки.СсылкаВладелец = УникальныйИдентификатор;
	// Откроем окно обработки
	Результат = ФормаОбработки.ОткрытьМодально();
	// Если фотография сделана отобразими её на форме
	Если Результат = КодВозвратаДиалога.Да Тогда 
		АдресКартинки = ФормаОбработки.СсылкаКартинки;
		Модифицированность = Истина;
	КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	Если ЭтоАдресВременногоХранилища(АдресКартинки) Тогда
        УдалитьИзВременногоХранилища(АдресКартинки);
    КонецЕсли;
    АдресКартинки = ПолучитьНавигационнуюСсылку(ТекущийОбъект.Ссылка, "Фото");
КонецПроцедуры
Показать

Прикрепленные файлы:
10. nextkmv 129 20.08.14 11:03 Сейчас в теме
Пожалуйста. Правда за время работы выявились некоторые недочеты, в частности компонента корректно работает только если есть одно устройство захвата в системе. Если в системе есть еще устройства, сканер например, то для нормальной работы их приходиться отключать в диспетчере устройств. В планах переписать компоненту с использованием библиотеки opencv на C++. Но это как только время появится.
11. Key-Zed 108 08.09.14 12:54 Сейчас в теме
А как сделать Resize снимка. Ну очень надо.
12. nextkmv 129 08.09.14 14:25 Сейчас в теме
Логичнее обработку изображения произвести во внешней компоненте, но такого функционала сейчас в ней нет. В 1С штатных механизмов для изменения размеров тоже нет, так что тут придется изобрести определенный велосипед. Я учту пожелания и как дойдут руки до новой версии учту эти пожелания но когда это будет сказать не могу.
13. Konstatine 8 30.01.15 09:39 Сейчас в теме
Добрый день! Посдкажите 2 вопроса: 1) компонента преобразует двоичные данные в картинку. А как задать нужное разрешение картинки? 2) Вы пишите, что эта обработка будет работать в IE. Пожалуйста, распишите подробней процесс настройки в браузере, никак разобраться не могу..
14. nextkmv 129 30.01.15 14:47 Сейчас в теме
Добрый день!
1) Компонента преобразует картинку в Base64 строку а затем 1С преобразует строку в картинку обратно. Разрешение при этом всегда равно разрешению камеры. Встроенного механизма изменения размера нет. Но вы можете самостоятельно реализовать данный функционал в компоненте, исходный код у вас есть в архиве Delphi7Source.zip.
2) Откройте тестовую конфигурацию в режиме веб клиента в браузере IE. При первом вызове компоненты платформа установит ее в браузер. В тестовой конфигурации вы можете посмотреть как происходит установка компоненты.
15. Konstatine 8 30.01.15 16:42 Сейчас в теме
16. Konstatine 8 30.01.15 20:48 Сейчас в теме
По поводу 2 вопроса..открыл конфигурацию в браузере, при открытии обработки программа спросила установить компоненту? После нажатия ДА выходит сообщение: "Установка внешней компоненты не выполнена. В процессе установки произошла ошибка." Подскажите с чем это может быть связано? Или может можно как-то вручную установить эту компоненту? Благодарю.
17. nextkmv 129 31.01.15 14:55 Сейчас в теме
Трудно сказать но я думаю что проблема скорее всего в настройках безопасности в IE. Нужно разрешить в настройках безопасности IE использование внешних компонент в том числе Activex.
Так же обращаю ваше внимание что компонента не является готовым решением а лишь демонстрирует механизм работы с камерой из Delphi(через вызовы WinAPI) и взаимодействие с 1С по технологии Native API, так же она не тестировалась на работу со всеми версиями платформы 1С и браузера IE. И используете вы ее на свой страх и риск.
21. Konstatine 8 04.03.15 08:54 Сейчас в теме
(17) nextkmv, подскажите, вопрос так и не решился.
18. Konstatine 8 19.02.15 08:10 Сейчас в теме
Подскажите, удавалось ли Вам установить компоненту в браузере? Если да, то какая у Вас версия IE? Настройки безопасности на самом низком уровне, но установить не получается. Спасибо.
19. Konstatine 8 19.02.15 16:03 Сейчас в теме
...или может ее можно установить вручную (т.е. скачать, распаковать)?
20. Prooa 39 26.02.15 05:32 Сейчас в теме
(19) Интересует этот же вопрос.
22. bayce 49 27.07.15 23:39 Сейчас в теме
Компонента хорошая.
Но если бы можно улучшить ее.
Есть компонента с хорошим функционалом, но к сожалению работает не стабильно.
http://infostart.ru/public/341805/#comm
23. nextkmv 129 29.07.15 10:02 Сейчас в теме
Компонента писалась довольно давно, с тех пор много что изменилась(Например кросплатформенность и мобильная платформа). В принципе я могу начать разработку новой версии, с учетом новых требований. Пишите свои пожелания а я попробую их реализовать.
Я бы добавил следующие возможности:
- Возможность настройки разрешения снимка;
- Возможность снимать видео;
- Возможность подключения проффесиональных цифровых камер для съемки номенклатуры;
- Возможность быстрой съемки, в один клик;
- Работа в толстом, тонком, web клиенте(укажите какие браузеры востребованы, так как для каждого требуется своя сборка), возможно мобильная версия компоненты(фотографируем на телефон выгружаем в основную ИБ);
- Возможно нужен функционал распознования изображений, например QR кода на коробках.
Пишите свои предложения, желательно в порядке приоритетности реализации.
25. Key-Zed 108 21.08.15 13:25 Сейчас в теме
(23) nextkmv, Дерзай, очень жду.
К списку предложений привинтить работу со сканером.
26. Konstatine 8 19.09.15 17:22 Сейчас в теме
Подскажите пожалуйста такой вопрос:
Внезапно на нескольких компьютерах начала выходить ошибка: "Не найден файл внешней компоненты".
Помогает перезагрузка. С чем такое может быть связано? Куда копать?
Саму внешнюю компоненту еще раз у вас скачал и заменил макет, но не помогло.
Благодарен за любой дельный совет.
27. nextkmv 129 20.09.15 13:51 Сейчас в теме
(26) Konstatine, странная ситуация. Попробуйте обновить платформу 1С.
28. anig99 2853 30.11.15 10:58 Сейчас в теме
Спасибо! Работает даже на XP под 8.3
29. пользователь 08.05.19 13:17
Сообщение было скрыто модератором.
...
30. user5300 1071 21.08.19 10:16 Сейчас в теме
не работает... Черный экран и не возвращает картинку снимка ...
Прикрепленные файлы:
31. pvl_mksv 20 04.11.20 14:22 Сейчас в теме
(30) Аналогичная картина в тонком клиенте х64 8.3.16.1224. Есть вероятность, что разрядность имеет значение?

(All) Существует ли список совместимого оборудования?
Спасибо, Инфостарт!
Оставьте свое сообщение