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

23.06.15

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

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

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

Наименование Файл Версия Размер
v8nWebCam
.zip 3,69Mb
169
.zip 3,69Mb 169 Скачать

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

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

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

16800 руб.

30.05.2017    52105    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    26244    131    99    

83

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

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

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

2400 руб.

04.05.2018    44977    117    64    

60

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

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

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

1500 руб.

17.09.2018    35081    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    54000    35    14    

68

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

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

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

2400 руб.

22.06.2016    30840    4    4    

8

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

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

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

19.02.2024    4039    starik-2005    28    

52

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

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

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

26.01.2024    4781    starik-2005    32    

39
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Diversus 2306 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 2306 07.04.13 21:28 Сейчас в теме
(2) Да не за что... Сам промучился с этим долго, пока путем проб и ошибок не получилось.
WaReZ_MEN; +1 Ответить
4. nextkmv 129 08.04.13 17:14 Сейчас в теме
Очень мало документации, особенно по интеграции в браузеры. Я к сожалению не смог найти информации по внедрению в Chrome, а в FF у меня внедрить так и не получилось. Компонента устаканивалась но при запуске FF говорил что расширение невозможно запустить.
5. CheBurator 3119 03.11.13 02:32 Сейчас в теме
Можно ли ВК использовать в 7.7...?
6. nextkmv 129 04.11.13 08:38 Сейчас в теме
Нет ВК написана на native API, которая появилась в 8.2. Но для семёрки я где то видел готовую обработку на инфостарте.
7. vitalya24 233 05.04.14 18:16 Сейчас в теме
клево, супер, я плюсанул. Только вопрос, только у меня не показывается предпросмотр перед тем как сделать снимок или у всех?
8. nextkmv 129 09.04.14 09:20 Сейчас в теме
(7) vitalya24, Пред просмотр заложен в ВК для удобства, но вы можете переписать ее исходный код прилагается.
9. Konstatine 7 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 7 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 7 30.01.15 16:42 Сейчас в теме
16. Konstatine 7 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 7 04.03.15 08:54 Сейчас в теме
(17) nextkmv, подскажите, вопрос так и не решился.
18. Konstatine 7 19.02.15 08:10 Сейчас в теме
Подскажите, удавалось ли Вам установить компоненту в браузере? Если да, то какая у Вас версия IE? Настройки безопасности на самом низком уровне, но установить не получается. Спасибо.
19. Konstatine 7 19.02.15 16:03 Сейчас в теме
...или может ее можно установить вручную (т.е. скачать, распаковать)?
20. Prooa 39 26.02.15 05:32 Сейчас в теме
(19) Интересует этот же вопрос.
22. bayce 45 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 7 19.09.15 17:22 Сейчас в теме
Подскажите пожалуйста такой вопрос:
Внезапно на нескольких компьютерах начала выходить ошибка: "Не найден файл внешней компоненты".
Помогает перезагрузка. С чем такое может быть связано? Куда копать?
Саму внешнюю компоненту еще раз у вас скачал и заменил макет, но не помогло.
Благодарен за любой дельный совет.
27. nextkmv 129 20.09.15 13:51 Сейчас в теме
(26) Konstatine, странная ситуация. Попробуйте обновить платформу 1С.
28. anig99 2843 30.11.15 10:58 Сейчас в теме
Спасибо! Работает даже на XP под 8.3
29. пользователь 08.05.19 13:17
Сообщение было скрыто модератором.
...
30. user5300 1000 21.08.19 10:16 Сейчас в теме
не работает... Черный экран и не возвращает картинку снимка ...
Прикрепленные файлы:
31. pvl_mksv 20 04.11.20 14:22 Сейчас в теме
(30) Аналогичная картина в тонком клиенте х64 8.3.16.1224. Есть вероятность, что разрядность имеет значение?

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