![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Привет Знатокам!
Имеется форма, условно называемая WCV. На нее положена панель Panel1. На панель положен Image1. На панель выводится видео с Веб камеры: Код:
void __fastcall TWCV::OpenVideo(void)
{
hWndC = capCreateCaptureWindowA("My Own Capture Window",
WS_CHILD | WS_VISIBLE,
WCV->Panel1->Left,
WCV->Panel1->Top,
WCV->Panel1->Width,
WCV->Panel1->Height,
WCV->Panel1->Handle,
0);
if (hWndC!=0)
{
capDriverConnect (hWndC,DeviceIndex);
capPreviewScale (hWndC, -1);
capPreviewRate (hWndC,0x42);
capPreview (hWndC,-1);
SetWindowPos (hWndC,
HWND_BOTTOM,
WCV->Panel1->Left,
WCV->Panel1->Top,
WCV->Panel1->Width,
WCV->Panel1->Height,
SWP_SHOWWINDOW);
}
}
Любые попытки нарисовать на Image1, например, рамку определенного размера ни к чему не приводят - ее не видно! Код:
void __fastcall TWCV::ConturDraw(int X, int Y)
{
Image1->Transparent = true;
Image1->Canvas->Brush->Color = clAqua;
Image1->Canvas->Brush->Style = bsSolid;
TRect R(0,0,160,160);
Image1->Canvas->FrameRect(R);
}Админ: Пользуемся тегами для оформления кода! Вопроса как всегда два: "Кто виноват? И что делать?" Ну или по другому спрошу: 1. Почему не видно нарисованных на Canvas линий??? 2. Как обеспечить возможность рисования??? Спасибо! Последний раз редактировалось Admin, 09.01.2015 в 16:47. |
|
#2
|
|||
|
|||
|
1. Как я понимаю, вывод происходит напрямую через DirectX. В этом случае действительно, при попытке рисования на канве все будет затерто следующим кадром с камеры (а скорее всего вообще не отрисуется, т.к. Handle заблокирован).
2. Надо перехватывать каждый кадр, отрисовывать на нем, а потом уже отрисовывать этот кадр самому на панели. Возможно поможет покопаться в DirectX и отрисовывать на кадрах прямо внутри него. |
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Onic777 (09.01.2015)
| ||
|
#3
|
||||
|
||||
|
Видео рисуйте в image1 а не в panel, потом с этого иimage можно получить в любой момент битовый образ, который можно будет отрисовать в другой image, на котором уже можно будет нарисовать все что угодно
|