Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
 Аватар для Derjzemit
269 / 14 / 0
Регистрация: 26.02.2014
Сообщений: 142

Сделать фото с веб-камеры и сохранить на диск

02.04.2014, 11:29. Показов 16249. Ответов 44
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день уважаемые форумчане. Пища для размышления: кто-нибудь видел или знает как можно реализовать на VBA, что бы при определенных действиях веб-камера захватывала изображение и сохраняла на компьютер? По идее драйвер стандартный для всех вебок и в теории (как я думаю) можно как то его вызвать с VBA. В инэте инфа вроде бы есть, буду тоже копаться, но может кто-нибудь знает.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.04.2014, 11:29
Ответы с готовыми решениями:

Сделать снимок с веб-камеры, сохранить на диск с сохранением пути в БД
Здравствуйте, требуется написать программу учета рабочего времени сотрудников. Если в целом, то задача сводится к тому, что есть таблица, в...

Сделать фото вебкой, сохранить на диск, скачать программу и открыть в ней фото с правами админа
1. Посетитель заходит на сайт, на сайте гугл карта. 2. Нажимает кнопку. 3. Тут же, без всяких алертов, делается фото вебкой (лампочка...

Как сделать фото с встроенной веб-камеры?
Здравствуйте! Недавно появилась задача сделать программу (на ассемблере), которая бы подключалась к веб-камере, делала фото с неё,...

44
1261 / 147 / 32
Регистрация: 11.02.2011
Сообщений: 418
04.04.2014, 10:19
Студворк — интернет-сервис помощи студентам
Derjzemit, по идее в журнале http://rutracker.org/forum/viewtopic.php?t=3441524 за нумером 5 за 2006 год должно быть описано как. Но пока не тестил.
1
 Аватар для Derjzemit
269 / 14 / 0
Регистрация: 26.02.2014
Сообщений: 142
04.04.2014, 11:23  [ТС]
В общем, переделал немного ту программу, вот только одна проблема, может можете ее решить.

Есть форма, на ней кнопка, коды:

Visual Basic
1
2
3
4
Private Sub UserForm_Initialize()
TCap = False
mCapHwnd = capCreateCaptureWindow("VideoCapture", 0, 0, 0, 320, 240, Application.hWnd, 0)
End Sub
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Private Declare Function capCreateCaptureWindow Lib "avicap32.dll" Alias "capCreateCaptureWindowA" _
(ByVal lpszWindowName As String, ByVal dwStyle As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, _
ByVal nHeight As Long, ByVal hwndParent As Long, ByVal nID As Long) As Long
 
Private Declare Function DestroyWindow Lib "user32" (ByVal hWnd As Long) As Boolean
 
 
Private Declare Function SendMessageAsLong Lib "user32" Alias "SendMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
 
Private Declare Function SendMessageAsString Lib "user32" Alias "SendMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
 
 
 
Private Const WM_CAP_START As Long = &H400
Private Const WM_CAP_DRIVER_CONNECT As Long = _
WM_CAP_START + 10
Private Const WM_CAP_DRIVER_DISCONNECT _
As Long = WM_CAP_START + 11
Private Const WM_CAP_FILE_SAVEDIB As Long = _
WM_CAP_START + 25
Private Const WM_CAP_GRAB_FRAME As Long = _
WM_CAP_START + 60
Private Const WM_CAP_DLG_VIDEOFORMAT = _
WM_CAP_START + 41
Private Const WM_CAP_DLG_VIDEOSOURCE = _
WM_CAP_START + 42
 
Private mCapHwnd As Long
 
Private Sub CommandButton1_Click()
TCap = True
SendMessageAsLong mCapHwnd, WM_CAP_DRIVER_CONNECT, 0, 0
 
SendMessageAsLong mCapHwnd, WM_CAP_GRAB_FRAME, 0, 0
SendMessageAsString mCapHwnd, WM_CAP_FILE_SAVEDIB, 0, ThisWorkbook.Path & "\VIDEO.BMP"
                
TCap = False
SendMessageAsLong mCapHwnd, WM_CAP_DRIVER_DISCONNECT, 0, 0
 
End Sub
В общем-то работает как надо, делает скрин и оставляет на рабочем столе, только вот загогулина... После закрытия формы, эксель почему-то зависает, можете объяснить в чем проблема?

Добавлено через 4 минуты
В общем понял в чем проблема, вернее досмотрел пример) забыл добавить:

Visual Basic
1
2
3
4
5
6
7
Private Sub UserForm_Terminate()
    TCap = False
    SendMessageAsLong mCapHwnd, WM_CAP_DRIVER_DISCONNECT, 0, 0
    SendMessageAsLong mCapHwnd1, WM_CAP_DRIVER_DISCONNECT, 0, 0
    DestroyWindow mCapHwnd
    Unload UserForm1
End Sub
В целом работает и именно этого я и хотел добиться в начале топа, всем большое спасибо)
1
1261 / 147 / 32
Регистрация: 11.02.2011
Сообщений: 418
04.04.2014, 12:13
Нашёл продолжение темы. Левая камера делает изображение "на лету" - не сохраняя на диск. Правая всё так же сохраняет. Но из проблем не смог разобраться с детектором движения и сохранением на диск видеоряда. Если кто тоже заинтересовался, просветите пожалуйста (=

Собственно выдрал инструкцию с продолжением темы (во вложении)
Вложения
Тип файла: xls Video.xls (71.5 Кб, 81 просмотров)
Тип файла: pdf Иструкция.pdf (197.8 Кб, 86 просмотров)
0
0 / 0 / 0
Регистрация: 26.12.2013
Сообщений: 32
04.04.2014, 13:05
Подскажите, у Вас что нибудь продвинулось?))
У меня тоже Windows 7, 64-битная с 10-м офисом.
Хотелось бы такую фичу иметь у себя))
0
 Аватар для Derjzemit
269 / 14 / 0
Регистрация: 26.02.2014
Сообщений: 142
04.04.2014, 13:14  [ТС]
video11.xls

Ну вот работающая программулина, которая по нажатии кнопки делает скрин на рабочий стол.
0
0 / 0 / 0
Регистрация: 26.12.2013
Сообщений: 32
04.04.2014, 13:20
Derjzemit, при открытии файла сразу выдал ошибку
Миниатюры
Сделать фото с веб-камеры и сохранить на диск  
0
 Аватар для Derjzemit
269 / 14 / 0
Регистрация: 26.02.2014
Сообщений: 142
04.04.2014, 13:25  [ТС]
По теме я вроде бы видел, что ребята обсуждали, что дело может быть в дровах и разрядности, у вас файлик avicap32.dll есть на машине?

У меня работает на 64-разрядной системе и на ОС Windows 7 с офисом 2010 x32, если у вас все так же, то видимо дело в той библиотеке или драйверах.
0
1261 / 147 / 32
Регистрация: 11.02.2011
Сообщений: 418
04.04.2014, 13:47
Che_69, у вас 64 битный офис. В ошибке написано, что под него надо код переделывать. А среду, где нужен в 64 битный офис я не встречал (офтоп конеш, но если кто случаи знает дайте ссыль на почитать)
0
0 / 0 / 0
Регистрация: 26.12.2013
Сообщений: 32
04.04.2014, 13:52
Derjzemit, да, такой файл имеется)).
korvindeson, а как переписать, чтобы работал не подскажете?
0
1261 / 147 / 32
Регистрация: 11.02.2011
Сообщений: 418
04.04.2014, 13:56
Che_69, не-а, никогда не работал с 64 биткой. А она точно вам нужна?
0
0 / 0 / 0
Регистрация: 26.12.2013
Сообщений: 32
04.04.2014, 14:00
korvindeson, она предустановлена администраторами офиса)) я ничего не могу с этим поделать...
0
1261 / 147 / 32
Регистрация: 11.02.2011
Сообщений: 418
04.04.2014, 14:03
Тогда читайте про то какие отличия. В той ошибке вас просят добавить PtrSafe в раздел декларирования переменных
0
0 / 0 / 0
Регистрация: 26.12.2013
Сообщений: 32
04.04.2014, 14:33
korvindeson, дописал необходимое. Один раз все корректно сработало, а в последующие создает пустой файл картинки
в чем может быть проблема?
0
1261 / 147 / 32
Регистрация: 11.02.2011
Сообщений: 418
04.04.2014, 14:48
Не в курсе. Попробовал файл видео11, который вам предложили, всё как часики. Да и в процессе выполнения делаются одни и те же шаги начиная с подключения драйвера и до его выгрузки. Однин раз сработало, должно бы и в остальные. Думаю проблема опять же с какой спецификой 64 битного офиса
0
0 / 0 / 0
Регистрация: 26.11.2015
Сообщений: 10
29.11.2015, 15:53
Ребята, а можно ли каким-то образом использовать "media foundation" для этих целей? Ведь avicap32 уже устарел, а примеров для vba по использованию media foundation ну вообще ни...ра нет - уже неделю роюсь.
0
0 / 0 / 0
Регистрация: 30.03.2016
Сообщений: 6
30.03.2016, 09:51
Ребят, может кто поможет, не могу переделать прогу под себя, нужно что бы фоткал прям в екселе и сохранял в екселе фотки в нужном размере, т.е схема кнопка-окно фотографирования-сохранение в екселе.

Добавлено через 1 час 35 минут
не могу вывести картинку на рабочий лист именно как "картинку" помогите
0
0 / 0 / 0
Регистрация: 30.03.2016
Сообщений: 6
30.03.2016, 09:51
вложение
Миниатюры
Сделать фото с веб-камеры и сохранить на диск  
0
0 / 0 / 0
Регистрация: 28.08.2015
Сообщений: 8
14.06.2016, 21:48
Все сработало, показывает захват, сохраняет картинку - то, что нужно. Вот только вопросик остался, никак на могу вычислить, где задается размер сохраненной картинки? т.е. сейчас картинка сохраняется 640х480, вес - 900кб. А как можно уменьшить сохраняемую картинку?

Добавлено через 23 часа 47 минут
Изменения значений в строке
Code
1
mCapHwnd = capCreateCaptureWindow("VideoCapture", 0, 0, 0, 320, 240, Application.hWnd, 0)
320 и 240 ничего не дают. Где же все-таки менять размер картинки?
0
1 / 1 / 0
Регистрация: 21.01.2019
Сообщений: 12
01.08.2019, 13:45
Цитата Сообщение от vmoffice Посмотреть сообщение
Все сработало, показывает захват, сохраняет картинку - то, что нужно. Вот только вопросик остался, никак на могу вычислить, где задается размер сохраненной картинки? т.е. сейчас картинка сохраняется 640х480, вес - 900кб. А как можно уменьшить сохраняемую картинку?
А можно ваш код в студию, если не потерялся. Привет из 2019
0
0 / 0 / 0
Регистрация: 28.08.2015
Сообщений: 8
14.08.2019, 19:05
Держи. Форма и код как есть. Делал для себя.
Вин7, офис 2013
Вложения
Тип файла: xls Video_my.xls (69.5 Кб, 70 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.08.2019, 19:05

Подскажите, как получить фото с камеры и сохранить её?
Здравствуйте! Пытаюсь получить фото с камеры телефона и сохранить её на карту памяти. Изучив пару примеров, понял, что нужно использовать...

Как получить фото с веб-камеры Logitech
Здравствуйте ! Можно ли как-нибудь в программе на C# (Visual Studio 2010, .Net 4) получить фото с веб-камеры Logitech ? Минимум:...

Указать путь сохранения фото с веб камеры
char filename; void SaveImage() { // сохраняем кадр в файл sprintf(filename, "Image%d.bmp", counter); printf(" Сделан...

Как сохранить фото с камеры напрямую во внутреннюю директорию приложения?
Стартую Intent камеры, добавляю Extra с Uri файла, куда надо сохранить снимок: Intent intent = new...

Снимок с веб-камеры сохранить в файл
Всем привет! Полазив по форуму, к сожалению, нормального решения так и не нашел, везде либо слишком сложно, либо не то, что мне нужно....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru