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

Тема в разделе "Delphi - Multimedia, Графика, Игры", создана пользователем GrenDaiZer, 25 фев 2007.

Статус темы:
Закрыта.
  1. GrenDaiZer

    GrenDaiZer Гость

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

    Barmutik Гость

    Тема уже обсуждалась в форуме и уже давались ответы .. поищите по форуму
     
  3. iogun

    iogun Гость

    Для: Barmutik
    подскажи а как вызывать диалог по настройке видео захвата (разрешение, компрессия, глубина...).
    В MSDN нашел capDlgVideoFormat но откуда ее вызывать не знаю, в dll -ке ее нет.
     
  4. zubr

    zubr Гость

    capDlgVideoFormat описана в Vfw.h, вот перевод этого хидера на паскаль
     

    Вложения:

    • vfw.zip
      Размер файла:
      34,6 КБ
      Просмотров:
      145
  5. iogun

    iogun Гость

    Нашел описание этой функции ч.з.
    function AVICapSM(hwnd: HWND; m: UINT; w: WPARAM; l: LPARAM): DWORD;
    begin
    if IsWindow(hwnd) then
    Result := SendMessage(hwnd,m,w,l)
    else
    Result := 0;
    end;
    как я понял происходит посылка форме сообщения WM_CAP_DLG_VIDEOFORMAT.
    Вызываю эту функцию (capDlfVideoFormat(Form1.Handle)) а диалогового окна по настройке формата нет, функция возвращает false.
     
  6. zubr

    zubr Гость

    Убери KOL из этого модуля - он там не нужен, да и вообще KOL глючная штука.
    В MSDN. Прототип найдешь в Windows.pas

    Совет: для захвата видео лучше воспользоваться компонентом DSPACK234 (не знаю, может сейчас более новые версии есть). Там реализован захват через DirectX. Компонент с исходниками и примерами. Гораздо менее гиморно будет, имхо.
     
  7. iogun

    iogun Гость

    Для: zubr
    мне всего лишь нужно делать фото ч.з. веб камеру, для личных дел студентов. Стоит ли подключать DSPACK? Обработка видео не нужна.
    У меня на форме есть компонент Image. КАк сохранять в файл bmp
    if SaveDialog1.Execute then
    SendMessage(hWndC,
    WM_CAP_SAVEDIB,
    0,
    longint(pchar(SaveDialog1.FileName)));

    где WM_CAP_SAVEDIB=WM_CAP_START+25

    а как сохранить фото сразу в этот компонент без временного сохранения в файл.
    все разобрался
    if (hWndC <> 0) and (SendMessage(hWndC, WM_CAP_GRAB_FRAME, 0, 0) = 1) and
    (SendMessage(hWndC, WM_CAP_EDIT_COPY, 0, 0) = 1) and (Clipboard.HasFormat(CF_BITMAP)) then
    begin
    // bmp.
    bmp:=TBitmap.Create;
    BMP.Assign(Clipboard);
    Image1.Picture.Assign(bmp);
    end;
    SendMessage(hWndC, WM_CAP_DRIVER_DISCONNECT, 0, 0);
    hWndC := 0;
    fmAbit.Repaint;
    Image1.Repaint;
     
  8. iogun

    iogun Гость

    подскажите как установить разрешение захватываемого изображения, а то по умолчанию 352x288. Т.е. с какими параметрами должно отправляться сообщени WM_CAP_DLG_VIDEOFORMAT
     
  9. zubr

    zubr Гость

    Смотри в MSDN - параметры нулевые.
    Насчет разрешения, как я понимаю это связано с драйвером захвата:
    Цитата из MSDN.
     
  10. iogun

    iogun Гость

    проблема решилась с помощью структуры BITMAPINFO и сообщения WM_CAP_SET_VIDEOFORMAT
     
  11. iogun

    iogun Гость

    после того как я захватил нужное изображени, схранил его, hWndC присвоил 0, отправил сообщение WM_CAP_DRIVER_DISCONNECT, на форме остался черный квадрат. Вызывал и repaint формы и панели - не помогает. Подскажите как его убрать? Похоже что функцией hWndC := capCreateCaptureWindowA('WideoCaptureWindow',
    WS_CHILD or WS_VISIBLE ,
    Image1.Left+ cxGroupBox1.Left,
    Image1.top+cxGroupBox1.top,
    176,
    144,
    Handle,
    0);
    создается подчиненное окно и после отключения устройства оно не закрывается. Как мне ему отправить сообщение чтоб оно закрылось?
     
  12. zubr

    zubr Гость

    WM_CLOSE, WM_DESTROY не пробовал?
     
  13. iogun

    iogun Гость

    Для: zubr
    пробовал, работает.
     
Загрузка...
Похожие Темы - Работа вебкамерой
  1. Andrey Kha
    Ответов:
    0
    Просмотров:
    28
  2. Hoasker
    Ответов:
    0
    Просмотров:
    64
  3. garri671
    Ответов:
    0
    Просмотров:
    55
  4. lelik200969
    Ответов:
    0
    Просмотров:
    52
  5. Kozolick
    Ответов:
    0
    Просмотров:
    142
Статус темы:
Закрыта.

Поделиться этой страницей