Пример работы с Web камерой (WIA)

31.10.12

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

Делаем фото с веб камеры.
Используем стандартную библиотеку Windows Image Acquisition Automation Library. Библиотеку wiaaut.dll качаем (из инета, бесплатно), регистрируем командой regsvr32.

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

Наименование Файл Версия Размер
ПримерWIA.ert
.ert 49,50Kb
74
.ert 49,50Kb 74 Скачать
ПримерWIA2.ert
.ert 203,50Kb
87
.ert 203,50Kb 87 Скачать

Пример 1: // самый простой (с вызовом диалога) (ПримерWIA.ert)

Device = CreateObject("WIA.CommonDialog");
Image = Device.ShowAcquireImage();
Image.SaveFile(Файл);

Пример 2: // делаем снимок как повезет (ПримерWIA.ert)

Device = CreateObject("WIA.DeviceManager");
Количество = Device.DeviceInfos.Count;
Для ин=1 По Количество Цикл
	Если Device.DeviceInfos(ин).Type = 3 Тогда // тип устройства (VideoDeviceType)
		dev = Device.DeviceInfos(ин).Connect();
		Item = dev.ExecuteCommand("{AF933CAC-ACAD-11D2-A093-00C04F72DC3C}"); // сделать снимок (wiaCommandTakePicture)
		Image = Item.Transfer("{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}"); // в формат JPG (wiaFormatJPEG)
		Image.SaveFile(Файл);
		Прервать;
	КонецЕсли;
КонецЦикла;

Пример 3: // выводим на форму изображение с камеры (ActiveX), делаем снимок (ПримерWIA2.ert)

Процедура СделатьФото()
	Item = АктивИксWIA.Объект.Device.ExecuteCommand("{AF933CAC-ACAD-11D2-A093-00C04F72DC3C}"); // сделать снимок
	Image = Item.Transfer("{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}"); // в формат JPG (wiaFormatJPEG)
	Image.SaveFile(Файл);
КонецПроцедуры

Процедура ПослеОткрытия()
	АктивИксWIA = СоздатьОбъект("АктивИкс"); 
	АктивИксWIA.УстановитьАтрибут(Форма, "ФАктивИксWIA"); 
	Device = CreateObject("WIA.DeviceManager");
	Количество = Device.DeviceInfos.Count;
	Для ин=1 По Количество Цикл
		Если Device.DeviceInfos(ин).Type = 3 Тогда // тип устройства (VideoDeviceType)
			АктивИксWIA.СоздатьЭУ("WIA.VideoPreview"); 
			АктивИксWIA.Объект.Device=Device.DeviceInfos(ин).Connect();
			Прервать;
		КонецЕсли;
	КонецЦикла;
КонецПроцедуры

Вариант ActiveX предпочтительнее тем, что не тратится время на "разогрев" камеры (время на включение, на настройку яркости).


См. также

HTTP сервер 1С 7.7 + HTTP асинхронный клиент: внешние компоненты для 1С 7.7

Разработка внешних компонент WEB-интеграция Платформа 1С v7.7 Конфигурации 1cv7 Платные (руб)

Компонента HttpSrv7 позволяет создавать веб-сервисы в среде 1С 7.7 и даже, используя файлы HTML, несложные веб-сайты. С помощью нее можно обеспечить доступ к данным 1С 7.7 из браузера. Дополнительно используя компоненту HTTP_Async или синхронный клиент HTTP для 1С 7.7 (публикация № 1152364) можно наладить обмен данными между удаленными информационными базами. С помощью компоненты HTTP_Async можно параллельно посылать много запросов к сайтам, веб-сервисам (в т.ч. к HttpSrv7), а затем обрабатывать данные по мере их поступления.

2000 руб.

27.05.2022    7811    20    13    

31

Компонента ExchangeStruc (Структура Обмена). Прямой обмен данными между потоками, сессиями и окнами.

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

Аддон "Структура Обмена" (ExchangeStruc) - это компонента, которая обеспечивает доступ к разделяемым процессом структурам, аналогичным структурам 1С. Обеспечивает прозрачную передачу данных примитивных типов, в том числе Двоичных данных, в режиме Реального времени между разными контекстами (формами) или потоками одного процесса. В перспективе функционал будет расширен для обмена между процессами, даже разных версий платформ. Совместим с версиями Windows рабочих станций и серверов, с платформами 1С разных версий и релизов в режиме Native начиная с 8.2, и в режиме COM начиная с версий 7.7. По скорости чтения и записи лишь немногим уступает стандартной структуре 1С. НОВОЕ: Добавлен функционал регистрации компоненты COM в качестве OLE Auto (COMОбъект) для поддержки её работы в серверах старых версий 1С: 8.0 и 8.1, где работа с компонентами исключена. Теперь можно коммуникацию с Фоновыми заданиями на этих версиях проводить.

7200 руб.

19.04.2023    4799    1    0    

3

Выбор из большого списка (для 1С 7.7)

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

Компонента для выбора значения из больших списков значений.

1200 руб.

02.12.2021    5777    2    19    

4

Форма для ввода количества товаров

Разработка внешних компонент Оптовая торговля Платформа 1С v7.7 Конфигурации 1cv7 Управленческий учет Платные (руб)

Расширяем уровень взаимодействия c пользователем с помощью новых возможностей - форма для ввода количества для перемещений и форма ввода количества с упаковками и штуками.

1200 руб.

08.09.2021    7390    0    2    

1

Внешняя компонента для преобразования файлов из/в кодировку Base64 в 1С 7.7

Разработка внешних компонент Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Эта внешняя компонента Base64.dll предназначена для платформы 1С версии 7.7. Используется для преобразования файлов из/в кодировку Base64 из встроенного языка 1С Предприятие. Компонента тестировалась на базе конфигурации Бухгалтерский учет для Казахстана, редакции 7.70.257.

10 стартмани

06.04.2021    9445    14    softmaker    12    

5

Криптография: внешняя компонента для 1С 7.7

Разработка внешних компонент Защита ПО и шифрование Платформа 1С v7.7 Абонемент ($m)

Цифровые подписи, шифрование, просмотр сертификатов ключей ЭЦП, работа с различными криптопровайдерами (в т.ч. КриптоПРО ГОСТ 2012) в 1С 7.7.

1 стартмани

08.06.2020    9050    27    mdbruyfn    10    

9

Протокол UDP: внешняя компонента для 1С 7.7

Разработка внешних компонент Платформа 1С v7.7 Абонемент ($m)

Обмен сообщениями и небольшими файлами по протоколу UDP с 1С и внешними приложениями в локальной сети или сети VPN.

1 стартмани

23.05.2020    7318    5    mdbruyfn    0    

6
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. bog2009 23.10.12 11:28 Сейчас в теме
2. bog2009 23.10.12 11:33 Сейчас в теме
Для 8.*
Device = Новый COMОбъект("WIA.CommonDialog");
Image = Device.ShowAcquireImage();
Если НЕ Image=Неопределено Тогда
Image.SaveFile(Файл);
КонецЕсли;
frkbvfnjh; sevushka; krein; shmellevich; Воронкин; via; +6 Ответить
3. iov 406 01.11.12 02:51 Сейчас в теме
(0) Иди суды я тя расцалую... прям вот вовремя ты это дело выложил.. я уже думал писать придется :)
4. dusha0020 1103 07.12.12 15:13 Сейчас в теме
WIA.CommonDialog у меня не стартует. Точнее где-то стартует, а где-то нет. Сам недавно писал что-то подобное, но когда перенес на теститрование на W7 с XP 1C-ка начала такие ошибки выдавать, что гугл завернулся (и я вместе с ним). Вот эта штука работает везде. Рекомендую.
5. via 92 07.12.12 15:49 Сейчас в теме
(4) dusha0020, Мне тот вариант как-то не очень понравился (каждый раз настройки выскакивали... иногда v7 выкидывало)... а тут постабильнее получилось (в сети магазинов используется)... из всех вариантов этот самым удачным получился.
6. dusha0020 1103 07.12.12 16:20 Сейчас в теме
(5) Да там есть проблемы с корректной остановкой компоненты, но как-то удалось стабилизировать. Перестал открывать - закрывать камеру для каждой фотки и заработало стабильно. Плюс выбор параметров устройства позволяет на навороченных камерах все-таки подстраивать разрешение и глубину цвета перед началом съемки. На последнем тесте дети 20 минут себя фоткали по всякому и никаких сбоев.
WIA, однако, пригодилась в другом месте. Так пригодилась, что даже публикацию делаю по мотивам. О подробностях естественно пока умолчу:)
7. mikmike 8 20.11.13 12:47 Сейчас в теме
(6) dusha0020, не срослось с публикацией?
8. dusha0020 1103 20.11.13 13:16 Сейчас в теме
9. mikmike 8 20.11.13 13:34 Сейчас в теме
(8) dusha0020, спасибки за оперативность. Ссылка попала в мой архив - мало ли когда пригодиться сможет.
10. dddonnn 28.02.14 10:24 Сейчас в теме
В примере 2 когда сразу веб-камера фотографирует, то чаще всего фотография сохраняется как половинчатая, как будто изображение не успевает сфотографироваться. Скажите, как можно избавиться от этой ошибки?
11. via 92 28.02.14 16:52 Сейчас в теме
(10) dddonnn, было и у меня такое (на некоторых web-камерах).. мне помогло: пауза после ...ExecuteCommand(... Скокато милисекунд (подбирается по ситуации).. После этого есть надежда, что фото готово и можно уже дальше работать (делать ...Transfer(... и ....SaveFile(... )
12. dddonnn 21.04.14 16:19 Сейчас в теме
Количество = Device.DeviceInfos.Count; на Win 7 возвращает 0. Подскажите, как бороться с этим траблом?
13. via 92 22.04.14 06:13 Сейчас в теме
(12) dddonnn, знал бы прикуп, жил бы в Сочи.. Используй http://infostart.ru/public/84693/
Светлый ум; +1 Ответить
14. kitminsk 205 29.11.14 19:22 Сейчас в теме
Количество = Device.DeviceInfos.Count; на Win 7 возвращает 0. Подскажите, как бороться с этим траблом? Может кто все-таки поборол?
15. kitminsk 205 29.11.14 19:30 Сейчас в теме
Для первого примера в той же семерке
{D:\DB1C\77\ВЕБКАМЕРА\EXTFORMS\ПРИМЕР.ERT(73)}: WIA.CommonDialog.1: Не доступно ни одно WIA-устройство выбранного типа.
Кто-нибудь на 7 винде работал с wia???
16. via 92 01.12.14 10:55 Сейчас в теме
(15) kitminsk, Верно.. там не робит.. поэтому пришлось другое использовать
17. Andrekaa 23.03.15 15:05 Сейчас в теме
а как сделать чтобы
Device = Новый COMОбъект("WIA.CommonDialog");
вызова диалога не было?
18. Vlaloplo 29.10.20 14:37 Сейчас в теме
Привет, а что делать если при вызове форма>>вставить ActiveX, открывается меню с библиотеками, но нет нужной :(. (нет, не глупый, компонент в системе зарегистрирован, но в 1с его почему то нет) Помогите, а)
19. via 92 30.10.20 07:33 Сейчас в теме
(18)
библиотеками

Если WIA на компе нет, то пользуйся WebCamX
Оставьте свое сообщение