Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Программирование графики > Захват фото с веб-камеры


Автор: мыш 16.12.17, 17:28
Вопрос номер один. Решен.

Всем привет! Проблема такая: моя камера (logitech c920) умеет делать фотки с разрешением 5k пикселей. А в захвате дает только 1920 максимум.
Разрешение устанавливаю с помощью WM_CAP_SET_VIDEOFORMAT а захват WM_CAP_GRAB_FRAME. Меньше установить получается, а если больше - оно выдает 1920.

Вопрос номер два. НЕРЕШЕН.

Захваченную фотку сохраняю на диск. Но какой бы я не подставлял FilePath, из него почему то читается только первая буква. Одна. В резульате, если задать FilePath="D:\1.bmp' то сохраняется файл просто с именем 'D' и, ложится в папку программы. Без расширения ессно. Что это может быть? В MSDN четко сказано, что этот параметр - null terminated string, чего ж она хочет?

<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    procedure CaptureWebCam(FilePath: String);
    begin
      if CaptureWindow <> 0 then begin
        SendMessage(CaptureWindow, WM_CAP_GRAB_FRAME, 0, 0);
        SendMessage(CaptureWindow, WM_CAP_SAVEDIB, 0, longint(PAnsiChar(FilePath)));
      end;
    end;

Автор: мыш 16.12.17, 19:37
Кажется я понял. Нужно запрашивать только те разрешения, которые может выдать камера. Например я пытался взять 640х480 а камера может только 864х480. Но 5168х2907 по прежнему не выходит сграбить, хотя через родную софтину оно такие снимки делает. Максимум что вышло - 2304х1296.

Добавлено
И тут понятно: оказалось что большие разрешения делаются программно, она больше 2мп не умеет. Всем спасибо :)

Автор: B.V. 16.12.17, 20:27
Цитата мыш @
чего ж она хочет?

Юникодную строку? Вероятно.

Автор: мыш 18.12.17, 13:46
Нет, пробовал.

<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    var
    f:WideString;
    f := SaveDialog1.FileName;
    SendMessage(hWndC,
                       WM_CAP_FILE_SET_CAPTURE_FILEA,
                       0,
                       Longint(pwidechar(f)));


то же самое

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)