Использование кнопки веб-камеры в моей собственной программе

У моей веб-камеры есть кнопка, с помощью которой вы делаете снимок текущего кадра при использовании оригинального программного обеспечения, которое было при покупке.

Есть ли способ использовать эту кнопку, чтобы делать фотографии в моей программе. Я бы использовал С#.

Я думал об использовании Windows Image Acquisition (WIA) или avicap32 для использования веб-камеры в своем программном обеспечении.

Любая помощь будет оценена по достоинству. С чего начать?

РЕДАКТИРОВАТЬ:

Я вижу, что вы меня не поняли. Мне нужно знать, нажата ли кнопка моей физической камеры. Я использую камеру DigiMicro 1.3 (производитель DNT), которая на самом деле не веб-камера, а USB-микроскоп, но ведет себя как веб-камера.


person ttkalec    schedule 19.12.2009    source источник
comment
Вы спрашиваете, как сделать снимок с помощью WIA или как узнать, когда была нажата физическая кнопка на вашей веб-камере? Если второе, нам нужно знать, какая у вас веб-камера. Я не думаю, что есть стандартный интерфейс для такого рода вещей.   -  person David Brown    schedule 19.12.2009
comment
Позже. Мне нужно знать, как узнать, нажата ли кнопка на моей камере.   -  person ttkalec    schedule 20.12.2009


Ответы (3)


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

Программное обеспечение «MicroCapture» не поставляется с библиотеками DLL с экспортированными функциями, поэтому использование P/Invoking не представляется возможным. К сожалению, я не могу установить драйвер, поэтому я не могу проверить, поставляется ли он с какими-либо библиотеками DLL, поддерживающими P/Invoke.

Извините, но поскольку стандартного интерфейса для такого рода функций нет, и производитель не предоставляет никакой конкретной информации о нем, я не думаю, что это возможно. Я бы предложил связаться с DNT напрямую по этому поводу. У них может быть какой-то компонент, который будет делать то, что вам нужно.

person David Brown    schedule 21.12.2009
comment
Большое спасибо за ваши усилия. Я свяжусь с DNT для получения дополнительной информации по этому вопросу. - person ttkalec; 21.12.2009
comment
@ttkalec Чем это закончилось? Вы обращались в ДНТ? Какой был результат? Я использую Linux и только что протестировал 2 веб-камеры. При нажатии на кнопку доступно событие клавиатуры, как и у мультимедийных клавиатур, с которыми проще всего иметь дело. Для расширенного использования (например, нескольких устройств) см. /questions/48612210/ и unix .stackexchange.com/questions/398660/ . - person Stéphane Gourichon; 20.03.2018
comment
@StéphaneGourichon Это было почти 10 лет назад :) В конце концов, мне не удалось заставить аппаратную кнопку работать, вместо этого я разработал обходной путь, который в то время был достаточно хорош для клиента. - person ttkalec; 02.05.2018
comment
@ttkalec Хорошо. Я написал это как для того, чтобы привести пример обновленного ответа, так и для того, чтобы узнать, чем для вас все закончилось. Любое сравнение между решениями с разницей в 10 лет рискованно, но интересно, что текущий подход Linux в этом случае кажется намного проще, так как в большинстве сред программирования очень легко получить события клавиатуры. - person Stéphane Gourichon; 03.05.2018

Этот пост Coding4Fun проведет вас через почти все, что вам нужно сделать, чтобы начать использовать WIA, включая добавление ссылки на проект, отображение диалогового окна выбора устройства и, конечно же, фактическую съемку: P.

Coding4Fun — посмотрите на меня! Получение образа Windows

person user235254    schedule 19.12.2009
comment
В этой угрозе меня особенно интересует использование физической кнопки на моей камере для фотографирования, а не использование моей камеры в приложении C #. Но все равно спасибо ;) - person ttkalec; 20.12.2009

Я предлагаю вам взглянуть на библиотеку DirectShow.NET. Он имеет отличные функциональные возможности для захвата изображений / видео с подключенных устройств. Он также поставляется с несколькими образцами, чтобы вы могли быстро начать работу.

person Kasper Holdum    schedule 19.12.2009
comment
В этой теме я спрашиваю, как использовать физическую кнопку на моей камере, не используя камеру в моем проекте C #. Tnx в любом случае ;) - person ttkalec; 20.12.2009