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

31.10.12

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
ПримерWIA.ert
.ert 49,50Kb
74
74 Скачать (1 SM) Купить за 1 850 руб.
ПримерWIA2.ert
.ert 203,50Kb
87
87 Скачать (1 SM) Купить за 1 850 руб.

Пример 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 предпочтительнее тем, что не тратится время на "разогрев" камеры (время на включение, на настройку яркости).


См. также

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

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

2000 руб.

27.05.2022    9530    24    17    

35

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

Компонента позволяет в среде 1С 7.7 генерировать двухмерный QR код из любого текста длиною до 1800 символов и сохранять его в файле BMP формата. Из файла он может быть загружен в объект 1С "Картинка".

1 стартмани

29.01.2025    587    3    mdbruyfn    4    

5

Разработка внешних компонент Системный администратор Программист Платформа 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    5481    1    0    

3

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

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

1200 руб.

02.12.2021    6449    2    19    

4

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

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

10 стартмани

06.04.2021    10475    14    softmaker    13    

5

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

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

1 стартмани

08.06.2020    9693    28    mdbruyfn    10    

9

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

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

1 стартмани

23.05.2020    7821    8    mdbruyfn    0    

7
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 407 01.11.12 02:51 Сейчас в теме
(0) Иди суды я тя расцалую... прям вот вовремя ты это дело выложил.. я уже думал писать придется :)
4. dusha0020 1120 07.12.12 15:13 Сейчас в теме
WIA.CommonDialog у меня не стартует. Точнее где-то стартует, а где-то нет. Сам недавно писал что-то подобное, но когда перенес на теститрование на W7 с XP 1C-ка начала такие ошибки выдавать, что гугл завернулся (и я вместе с ним). Вот эта штука работает везде. Рекомендую.
5. via 93 07.12.12 15:49 Сейчас в теме
(4) dusha0020, Мне тот вариант как-то не очень понравился (каждый раз настройки выскакивали... иногда v7 выкидывало)... а тут постабильнее получилось (в сети магазинов используется)... из всех вариантов этот самым удачным получился.
6. dusha0020 1120 07.12.12 16:20 Сейчас в теме
(5) Да там есть проблемы с корректной остановкой компоненты, но как-то удалось стабилизировать. Перестал открывать - закрывать камеру для каждой фотки и заработало стабильно. Плюс выбор параметров устройства позволяет на навороченных камерах все-таки подстраивать разрешение и глубину цвета перед началом съемки. На последнем тесте дети 20 минут себя фоткали по всякому и никаких сбоев.
WIA, однако, пригодилась в другом месте. Так пригодилась, что даже публикацию делаю по мотивам. О подробностях естественно пока умолчу:)
7. mikmike 9 20.11.13 12:47 Сейчас в теме
(6) dusha0020, не срослось с публикацией?
8. dusha0020 1120 20.11.13 13:16 Сейчас в теме
9. mikmike 9 20.11.13 13:34 Сейчас в теме
(8) dusha0020, спасибки за оперативность. Ссылка попала в мой архив - мало ли когда пригодиться сможет.
10. dddonnn 28.02.14 10:24 Сейчас в теме
В примере 2 когда сразу веб-камера фотографирует, то чаще всего фотография сохраняется как половинчатая, как будто изображение не успевает сфотографироваться. Скажите, как можно избавиться от этой ошибки?
11. via 93 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 93 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 93 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 93 30.10.20 07:33 Сейчас в теме
(18)
библиотеками

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