Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.222.200.143] |
|
Сообщ.
#1
,
|
|
|
Вопрос номер один. Решен.
Всем привет! Проблема такая: моя камера (logitech c920) умеет делать фотки с разрешением 5k пикселей. А в захвате дает только 1920 максимум. Разрешение устанавливаю с помощью WM_CAP_SET_VIDEOFORMAT а захват WM_CAP_GRAB_FRAME. Меньше установить получается, а если больше - оно выдает 1920. Вопрос номер два. НЕРЕШЕН. Захваченную фотку сохраняю на диск. Но какой бы я не подставлял FilePath, из него почему то читается только первая буква. Одна. В резульате, если задать FilePath="D:\1.bmp' то сохраняется файл просто с именем 'D' и, ложится в папку программы. Без расширения ессно. Что это может быть? В MSDN четко сказано, что этот параметр - null terminated string, чего ж она хочет? 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; |
Сообщ.
#2
,
|
|
|
Кажется я понял. Нужно запрашивать только те разрешения, которые может выдать камера. Например я пытался взять 640х480 а камера может только 864х480. Но 5168х2907 по прежнему не выходит сграбить, хотя через родную софтину оно такие снимки делает. Максимум что вышло - 2304х1296.
Добавлено И тут понятно: оказалось что большие разрешения делаются программно, она больше 2мп не умеет. Всем спасибо |
Сообщ.
#3
,
|
|
|
Цитата мыш @ чего ж она хочет? Юникодную строку? Вероятно. |
Сообщ.
#4
,
|
|
|
Нет, пробовал.
var f:WideString; f := SaveDialog1.FileName; SendMessage(hWndC, WM_CAP_FILE_SET_CAPTURE_FILEA, 0, Longint(pwidechar(f))); то же самое |