1. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Первый товар уже в продаже: Консультация на тему ИБ от Ondrik8

    Скрыть объявление
  2. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Второй товар маркетплейса: Надёжная обфускация вашей программы от PingVinich

    Скрыть объявление

Usb-webcam, Delphi

Тема в разделе "Delphi - Компоненты", создана пользователем vouk03, 15 сен 2005.

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

    vouk03 Гость

    Репутация:
    0
    Хочу из программы на Delphi управлять USB веб-камерой: делать снимки по событию и иметь результат, как переменную. Есть ли такой компонент или как иначе это сделать?
     
  2. vouk03

    vouk03 Гость

    Репутация:
    0
    Масса народу смотрела - никто не отозвался. Неужели никто ничего не знает? Или это неинтересно? Объясняю. В поле зрения камеры находится, к примеру, 10 объектов. Время от времени с ними что-то происходит. Нужно отреагировать. Есть масса применений, поделюсь идеями, если кто скажет, как подключить.
     
  3. Barmutik

    Barmutik Гость

    Репутация:
    0
    А Вы искать сами пробовали ?

    Всё описано в хелпе и ищется за 10 минут ... пример написан за 5 минут .. так что не взыщите ...

    Код (Text):
    const
    WM_CAP_START         = WM_USER;
    WM_CAP_STOP          = WM_CAP_START + 68;
    WM_CAP_DRIVER_CONNECT     = WM_CAP_START + 10;
    WM_CAP_DRIVER_DISCONNECT   = WM_CAP_START + 11;
    WM_CAP_GRAB_FRAME       = WM_CAP_START + 60;
    WM_CAP_EDIT_COPY       = WM_CAP_START + 30;
    WM_CAP_DLG_VIDEOSOURCE     = (WM_CAP_START+ 42);

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


    procedure TForm1.BClick(Sender: TObject);
    begin
    if B.Caption = 'Start' then
    begin
     hWndC := capCreateCaptureWindowA('My Own Capture Window',
                      WS_CHILD or WS_VISIBLE ,
                      0,
                      0,
                      352,
                      288,
                      Form1.Handle,
                      0);
     if hWndC <> 0 then
     begin
      SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);
      B.Caption := 'Stop';
      Timer1.Enabled := True;
     end;
    end else
    begin
     B.Caption := 'Start';
     Timer1.Enabled := False;
     if hWndC <> 0 then
     begin
      SendMessage(hWndC, WM_CAP_DRIVER_DISCONNECT, 0, 0);
      hWndC := 0;
     end;
    end;
    end;

    procedure TForm1.Timer1Timer(Sender: TObject);
    var s : string;
    begin
    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
     s := TimeToStr(Time);
     s[3] := '.';
     s[6] := '.';
     s := DateToStr(Date) + ' - ' + s + '.jpg';
      BMP.Assign(Clipboard);
     JPG.Assign(BMP);
     JPG.Compress;
    //  JPG.SaveToFile(SavePath + s);
    end;
    end;
    Вызов настроек
    Код (Text):
     if hWndC <> 0 then
     SendMessage(hWndC, WM_CAP_DLG_VIDEOSOURCE, 0, 0);
     
  4. vouk03

    vouk03 Гость

    Репутация:
    0
    Barmutik'у: Виноват конечно, но заслуживаю снисхождения: не программист я вообще-то. Спасибо большое, я не надеялся на такой подробный ответ, думал наводку только получить.
    Снимаю шляпу перед профессионалом :lol:
     
  5. zubr

    zubr Гость

    Репутация:
    0
    Есть очень неплохой компонент DSPACK234, у которого кроме захвата изображения есть множество других возможностей. Также захват не зависит от драйвера захвата.
     
  6. vouk03

    vouk03 Гость

    Репутация:
    0
    Zubr, а где взять компонет? "Масса возможностей" интригует, может пригодиться...
     
  7. Barmutik

    Barmutik Гость

    Репутация:
    0
    Задача вообщем то не сильно сложная ... просто если Вы не программист, то может стоит обратится со своей задачей к программистам ..

    Будет в итоге дешевле и по времени и по деньгам .. чем самому пробивать то в чём Вы не очень разбираетесь...

    А так не за что .. удачи! B)
     
  8. zubr

    zubr Гость

    Репутация:
    0
    Вот порылся у себя, нашел: здесь
     
  9. Chertik

    Chertik Гость

    Репутация:
    0
    Подскажите, пожалуйста.
    А есть ли иные способы сохранения изображения в память для обработки, кроме WM_CAP_EDIT_COPY. И как узнать его размеры и формат(программно). Я только столкнулся с этим вопросом и многого не знаю(студент).
     
  10. zubr

    zubr Гость

    Репутация:
    0
    Через DirectX. Тема довольно сложная, в 2-х словах не объяснишь. Скачай компонент DSPACK234, там все это реализовано в исходниках, также литературу поищи по DirectX.
     
Загрузка...
Похожие Темы - Usb webcam Delphi
  1. Cord_JR
    Ответов:
    6
    Просмотров:
    478
  2. Jaia
    Ответов:
    1
    Просмотров:
    229
  3. Bafomet
    Ответов:
    2
    Просмотров:
    185
  4. c0de3r
    Ответов:
    6
    Просмотров:
    351
  5. ghost

    usbdeath

    ghost, 5 окт 2016, в разделе: Kali Linux
    Ответов:
    0
    Просмотров:
    131
Статус темы:
Закрыта.

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