работа с WebCam
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.139] |
|
|
Правила раздела C/C++: Системное программирование и WinAPI
FAQ Сайта (C++)
FAQ Форума
Наши Исходники
Поиск по Разделу
MSDN Library Online (Windows Driver Kit)
Google
работа с WebCam
|
|
|
|
|
Добрый день господа...
Я пытаюсь получить с WebCam картинку. Я порылся в интернете и нашёл такую функции как capCreateWindow().... Честно говоря я даже не знаю какие Header мне нужны. Может кто то уже решал эту задачу ? Буду рад информации. |
|
Сообщ.
#2
,
|
|
|
|
capCreateCaptureWindow
http://msdn.microsoft.com/en-us/library/ms707166.aspx |
|
Сообщ.
#3
,
|
|
|
|
Добрый деньгоспода
Я Написал програму для получения картини с веб камеры вот только получаю ашибку error c2664 'capCreateCaptureWindowW' Конвертирование Параметра 1 с const char в LPCWSTR не возможно... Может ктото может подкаректировать ??? ![]() ![]() #include<windows.h> #include<vfw.h> void main() { HWND hwnd; HWND hWnd=capCreateCaptureWindow("WebCam",WS_CHILD|WS_CLIPSIBLINGS|WS_VISIBLE,10,100,260,220,hwnd,1); capDriverConnect(hWnd,0); CAPTUREPARMS s; capCaptureGetSetup(hWnd,&s,sizeof(CAPTUREPARMS)); s.fYield=TRUE; s.fCaptureAudio=FALSE; s.fAbortLeftMouse=FALSE; s.fAbortRightMouse=FALSE; capCaptureSetSetup(hWnd,&s,sizeof(CAPTUREPARMS)); capEditCopy(hWnd); OpenClipboard(NULL); HBITMAP handle=(HBITMAP) GetClipboardData(CF_BITMAP); HBITMAP hBmp = (HBITMAP) CopyImage(handle,IMAGE_BITMAP,0,0,LR_COPYRETURNORG); HDC hdc=GetDC(NULL); HDC sourceHdc = CreateCompatibleDC(hdc); SelectObject(sourceHdc,hBmp); //делай чтото с картинкой DeleteDC(sourceHdc); DeleteObject(hBmp); CloseClipboard(); capDriverDisconnect(hWnd); DestroyWindow(hWnd); } -Added Цитата Davidow @ Добрый деньгоспода Я Написал програму для получения картини с веб камеры вот только получаю ашибку error c2664 'capCreateCaptureWindowW' Конвертирование Параметра 1 с const char в LPCWSTR не возможно... Может ктото может подкаректировать ??? ![]() ![]() #include<windows.h> #include<vfw.h> void main() { HWND hwnd; HWND hWnd=capCreateCaptureWindow("WebCam",WS_CHILD|WS_CLIPSIBLINGS|WS_VISIBLE,10,100,260,220,hwnd,1); capDriverConnect(hWnd,0); CAPTUREPARMS s; capCaptureGetSetup(hWnd,&s,sizeof(CAPTUREPARMS)); s.fYield=TRUE; s.fCaptureAudio=FALSE; s.fAbortLeftMouse=FALSE; s.fAbortRightMouse=FALSE; capCaptureSetSetup(hWnd,&s,sizeof(CAPTUREPARMS)); capEditCopy(hWnd); OpenClipboard(NULL); HBITMAP handle=(HBITMAP) GetClipboardData(CF_BITMAP); HBITMAP hBmp = (HBITMAP) CopyImage(handle,IMAGE_BITMAP,0,0,LR_COPYRETURNORG); HDC hdc=GetDC(NULL); HDC sourceHdc = CreateCompatibleDC(hdc); SelectObject(sourceHdc,hBmp); //делай чтото с картинкой DeleteDC(sourceHdc); DeleteObject(hBmp); CloseClipboard(); capDriverDisconnect(hWnd); DestroyWindow(hWnd); } HWND hWnd=capCreateCaptureWindow("WebCam",WS_CHILD|WS_CLIPSIBLINGS|WS_VISIBLE,10,100,260,220,hwnd,1); ашибка в этой строчки |
|
Сообщ.
#4
,
|
|
|
|
у тебя проект Unicode, а передаешь ты ansi-строку, замени на
![]() ![]() HWND hWnd=capCreateCaptureWindow(L"WebCam",WS_CHILD|WS_CLIPSIBLINGS|WS_VISIBLE,10,100,260,220,hwnd,1); |
|
Сообщ.
#5
,
|
|
|
|
А как переделать проект с Unicode в Asski...
Я исправил как ты сказал и получаю две ащибки |
|
Сообщ.
#6
,
|
|
|
|
|
Сообщ.
#7
,
|
|
|
|
Цитата Davidow @ А как переделать проект с Unicode в Asski... а зачем? вообще в настройках проекта Цитата Davidow @ ашибки добавить сверху(после инклюдов) строку ![]() ![]() #pragma comment(lib, "Vfw32.lib") |
|
Сообщ.
#8
,
|
|
|
|
Большое спасибо, всё работает, покрайней мере проект стартует без ошибок....
Я дохожу до этой строчки HWND hWnd=capCreateCaptureWindow(L"WebCam",WS_CHILD,10,100,260,220,hwnd,1); И вижу что hWnd равна нулю... ТОесть я не получаю данные... Мне кажется проблемма в hwnd.... Если честно я совсем не понемаю где я указываю что я хочу получить картинку с WebCab... В каком месте capCreateCaptureWindow()... Пожалуйста помогите, тану в вапросах ((Мне не нужно произвадить видео в окне.... Я просто хочу получить кадр |
|
Сообщ.
#9
,
|
|
|
|
Цитата Davidow @ Если честно я совсем не понемаю где я указываю что я хочу получить картинку с WebCab... В каком месте capCreateCaptureWindow()... вообще-то сама функция подразумевает, что тебе с веб-камеры надо получать картинку попробуй так Цитата Davidow @ HWND hWnd=capCreateCaptureWindow(L"WebCam",WS_CHILD | WS_VISIBLE,10,100,260,220,hwnd,1); и вообще hWnd принмает какое-то значение уже после этой строчки(если в отладчике смотреть) в окне отображается хоть что-нибудь? Добавлено Цитата Davidow @ Мне не нужно произвадить видео в окне.... Я просто хочу получить кадр мне кажется, тут подойдет что-то вроде capCaptureSingleFrame |
|
Сообщ.
#10
,
|
|
|
|
отображается
Run-Time Check Failure #3 -The Variabel 'hwnd' is being used without being initialized |
|
Сообщ.
#11
,
|
|
|
|
Davidow, ты создаёшь дочернее окно на несуществующем родителе
тебе нужно создать окно и на него поместить это. для этого тебе нужно создать проект win32 aplication, а не консольное. а потом по примеру Using Window Classes только там определить MainWndProc нужно будет.... или же следовать тому что создаст визард. hwnd - это будет твой родитель.... в общем примерно так |
|
Сообщ.
#12
,
|
|
|
|
a как определить MainWndProc. я получаю LNK ошибку
|