Страница 1 из 1

Работа с вебкамерой

Добавлено: 26 фев 2007, 21:29
GrenDaiZer
--------------------------------------------------------------------------------

Пожалуйста, подскажите кто-нибудь как работать с вебкамерой в Deplhi, какие компоненты нужны. Необходимо иметь возможность получить с вебкамеры как картинки, так и видео. Спасибо заранее за помощь.

Re: Работа с вебкамерой

Добавлено: 27 фев 2007, 09:54
somewhere

Код: Выделить всё

const WM_CAP_DRIVER_CONNECT         = WM_CAP_START + 10;
const WM_CAP_DRIVER_DISCONNECT      = WM_CAP_START + 11;
const WM_CAP_SAVEDIB                = WM_CAP_START + 25;
const WM_CAP_GRAB_FRAME             = WM_CAP_START + 60;
const WM_CAP_SEQUENCE               = WM_CAP_START + 62;
const WM_CAP_EDIT_COPY              = WM_CAP_START + 30;
const WM_CAP_GRAB_FRAME_NOSTOP        = WM_CAP_START + 40;

function capCreateCaptureWindowA(lpszWindowName : PCHAR;
                                 dwStyle : longint;
                                 x : integer;
                                 y : integer;
                                 nWidth : integer;
                                 nHeight : integer;
                                 ParentWin  : HWND;
                                 nId : integer): HWND;
                                 STDCALL EXTERNAL 'AVICAP32.DLL';

...... Bla-Bla-Bla-Bla-Bla-Bla-Bla ......

hWndC := capCreateCaptureWindowA('My Own Capture Window',
                                   WS_CHILD or WS_VISIBLE ,
                                   Panel.Left,
                                   Panel.Top,
                                   Panel.Width,
                                   Panel.Height,
                                   YourForm.Handle,
                                   0);
SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);
SendMessage(hWndC, WM_CAP_GRAB_FRAME, 0, 0);
SendMessage(hWndC, WM_CAP_EDIT_COPY, 0, 0);
b := TBitmap.Create;
b.LoadFromClipBoardFormat(cf_BitMap,ClipBoard.GetAsHandle(cf_Bitmap),0);
Простейший захват картинки с видеокамеры, используя виндовый Capture driver.
Создает окно захвата. Все общение с драйвером происходит на уровне сообщений окна. Результат перекидывается через клипборд.

Re: Работа с вебкамерой

Добавлено: 27 фев 2007, 10:50
BBB
somewhere писал(а):Простейший захват картинки с видеокамеры, используя виндовый Capture driver.
Создает окно захвата. Все общение с драйвером происходит на уровне сообщений окна. Результат перекидывается через клипборд.
Есть функция сохранения картинки сразу в BMP-файл, безо всяких клипбордов:
capFileSaveDIB

Re: Работа с вебкамерой

Добавлено: 27 фев 2007, 16:18
somewhere
&quot писал(а):Есть функция сохранения картинки сразу в BMP-файл, безо всяких клипбордов:
А в файл его никто не сохранял. В примере он в памяти, никаких файлов не создает. Можно конечно через CallBack функции пойти, чтобы клипборд не трогать - но это уже примером не назовешь :-)

Re: Работа с вебкамерой

Добавлено: 28 фев 2007, 15:52
BBB
somewhere писал(а):А в файл его никто не сохранял. В примере он в памяти, никаких файлов не создает. Можно конечно через CallBack функции пойти, чтобы клипборд не трогать - но это уже примером не назовешь :-)
Я подразумевал, что раз ты тягаешь картинку с видеокамеры, то, скорее всего, тебе захочется ее сохранить где-нибудь на диске. Тогда capFileSaveDIB как раз, на мой взгляд, очень удобна.

Re: Работа с вебкамерой

Добавлено: 01 мар 2007, 22:15
GrenDaiZer
Спасибо за помощь, друзья!!!