Компонента для получения фотографии с WEB-камеры с использованием DirectX
Часто встречал на сайте компоненты для получения изображения с камеры.
Но основная часть использует для подключения к камере виндовую библиотеку AVICAP.DLL, которая в последних версиях Windows работает далеко не лучшим образом (если вообще работает). Лично у меня частенько был видел только зелёный экран.
Решил переписать получение фотки с использованием DirectX.
Использование в аттаче.
—
2024.02.01
Доделал, чтобы возвращало сразу двоичные данные — больше не надо что-то кодировать после получения.
Также добавлен метод для наложения водяного знака (см. использование).
(0) Автор, поправьте, пожалуйста, в названии понятие «вёб» на одно из общепринятых понятий:веб, вэб (или используйте его англоязычное написание /web/) . Честно говоря, непривычно как-то. А так — тема интересная. Direct-X (DirectShow — это как раз тот набор компонентов, позволяющий работать с видео-потоками) — на данный момент, как мне кажется, самый функциональный набор решений для работы с ними в OS Windows.
Цена компоненты несколько завышена (imho). Есть более функциональные компоненты для работы с web-камерами, размещёнными на infostart.ru.
(1) premier, сейчас поправлю и описание и цену понижу.
Показать
Добавлен метод наложения водяного знака.
Показать
ребята на 1с 8.3 и Server 2012 R2 работать будет?
У нас 2012 и 8.3.9, но это на сервере — всё работает.
На клиентах — от 7-ки до 10-ки.
На ХР тоже проблем нет.
Подойдет для УТ 11?
(6) Да, конечно.
У нас УТ 3.1.2 (Украина — аналог УТ 11).
Нативные компоненты появились ещё в 8.2, так что должно работать в большинстве конфигураций.
Я конечно дико извиняюсь, но где описание??? (см.использование) ???? В аттаче только dll и manifest
(9) пост 2 и 3.
В шапку код не пропустили без спойлера, а спойлер туда не ставится — пришлось отдельным постом делать.
А что в примере (2) за переменная (или реквизит формы) «dsWebCam»?
(11) верно подметили — там должно быть Компонента
Скачал компоненту. Окно с видео открывается, но в результате dsWebCam.Успех=Ложь Win7Sp1 (1C 8.3.14.1630), версия dll 2.2.1.6.
Что еще можно посмотреть/сделать?
ps: Тестовую обработку было бы полезно приложить в архив для скачивания… Версии x64 нет/не будет?
upd: убрал макет с компонентой
(13) в вашей обработке немного можно подправить код
Функция КартинкаИзСтроки(стрКартинка, УникальныйИдентификатор)
в стрКартинка уже двоичные данные приходят (если нет — постучите в личку).
—
В целом проверил — работает.
directX установлен ?
(14) С новой компонентой (2.2.1.8) работает нормально. Спасибо.
(14)
Мне не приходят )
После вызова: dsWebCam.Старт(), открывается видео-окно, в нем нажимаю «сфотографировать» и далее по условию не проходит (Если dsWebCam.Успех Тогда … ):
dsWebCam.Успех == Ложь
Подскажите в чем может быть проблема?
PS:
32бит, 8.3.12.1529. На более новых платформах не тестировал.
виртуальне веб камеры, вечером дома попробую на «железной» — отпишусь.
(16) не в курсе , что это за камеры.
Успеха нет видимо потому, что не выходит вывод с этой камеры из BMP в JPG запихнуть.
Опять же — с обычными камерами работает.
С пробросом в РДП средствами винды тоже работает.
От версии 1С не зависит — работает и на 8.3.15.1700.
Тут что-то специфическое в виртуальности.
(17) проверил на железной камере, на другой конфигурации ПК — результат тот-же 🙁
Видео с камеры транслируется. Но в строку ничего не приходит:
Показать
Возможно кокой-то «Дельфийской» компоненты не хватает. Конвертация BMP->JPG каким методом происходит? Эксепшены посмотреть нигде нельзя в логах каких-нибудь?
(18)Автор прислал новую версию — все получилось. Спасибо ему за это!
(обещал обновить в публикации)