Форум: "Система";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
ВнизИ снова Web-камера Найти похожие ветки
← →
Ozone © (2004-04-15 11:58) [0]Инициализирую видео так:
hWndC := capCreateCaptureWindow("", WS_CHILD or WS_VISIBLE , 0, 0, 2*352, 2*258, aviPanel.Handle, nID);
//aviPanel : TPanel
capDriverConnect(hWndC, 0);
capFileSetCaptureFile(hWndC, PChar(aviFILE))
//aviFILE : string;
И делаю снимок
capCaptureSingleFrameOpen(hWndC)
И кладу его (снимок) в Stream как JPEG:
BMP := TBitmap.Create;
with BMP do begin
try
DC := GetWindowDC(hWndC);
try
GetWindowRect(hWndC, R);
Width := 320;
Height := 240;
BitBlt(Canvas.Handle, 0, 0, Width, Height, DC, 0, 0, SRCCOPY);
finally
ReleaseDC(hWndC, DC);
end;
JPG:= TJPEGImage.Create;
try
with JPG do begin
Grayscale := true;
CompressionQuality := 10;
Performance := jpBestSpeed;
ProgressiveDisplay := False;
PixelFormat := jf8Bit;
BMP.Canvas.TextOut(0,0,DateTimeToStr(now));
Assign(BMP);
SaveToStream("");
end;
finally
Jpg.Free;
end;
finally
Free;
end;
end;
Проблема в том, что если эта панель (aviPanel) чем-то перекрыта, н-р, другим окном, то соответсвенно на снимке получается это самое окно. (ну про сворачивание я вообще молчу).
Вопросы:
1. Как можно сделать все это по людски?
2. Если установлено 2 камеры, то как без запуска стандартного диалога capDlgVideoSource, выьрать нужную камеру?
PS: Юзаю VfW.pas
← →
Ozone © (2004-04-15 12:25) [1]В принципе, 1й вопрос можно решить тем, что сделать окно поверх всех и запретить минимизацию.
А вот 2й?
← →
Ozone © (2004-04-15 14:47) [2]Куда делись усе мастера?
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c