Каким образом вы накладываете текст, неподвижное изображение или окна. Рисование графики поверх видеопотока? - PullRequest
0 голосов
/ 10 июля 2010

Я использую стороннюю библиотеку функций захвата видео .NET, которая отображает потоковое видео с USB-устройства захвата видео в VideoPictureBox (что очень похоже на обычный .NET PictureBox). Я хочу отображать графику и текст поверх видеопотока.

Есть ли какой-нибудь способ наложить обычный PictureBox так, чтобы графика и текст появлялись поверх видео? Казалось бы, можно создать прозрачный PictureBox, показывающий все, что находится под ним, но позволяя windows.drawing графику и текст записывать в PictureBox обычным способом ... как использование магического маркера для перехода на оконное стекло.

Как можно было бы написать это? Я обычно использую VB.NET, но C # тоже в порядке (Visual Studio 2005).

- Дейв Эмери

Ответы [ 2 ]

0 голосов
/ 10 июля 2010

Вы не говорите, но я предполагаю, что видео воспроизводится с помощью DirectShow. В этом случае вы можете отобразить его с помощью WPF (как предложено выше) или добавить свой собственный фильтр в DirectShow FilterGraph. Вы можете создать фильтр, который будет касаться видеопотока и отображать его в своем собственном элементе управления, или изменить видеоконтент перед его рендерингом.

Но прежде чем делать все это, стоит попробовать, если VideoPictureBox хорошо работает вместе с двойной буферизацией в WinForm. Вероятно, не будет, но намного меньше работы, если вам повезет.

0 голосов
/ 10 июля 2010

Возможно, вы захотите взглянуть на Windows Presentation Foundation для этого приложения.Элементы управления Winforms действительно поддерживают прозрачный фон, но на самом деле они поддерживают только fake , фотографируя то, что находится под ним.В определенных ситуациях (и я думаю, что ваше движущееся видео, вероятно, будет одним из них), эта техника просто не работает так хорошо.WPF, с другой стороны, должен справиться с этим очень хорошо.

...