C# 如何在视频流上叠加文本、静态图像或windows.drawing图形?

C# 如何在视频流上叠加文本、静态图像或windows.drawing图形?,c#,vb.net,winforms,.net-2.0,C#,Vb.net,Winforms,.net 2.0,我正在使用一个第三方.NET视频捕获函数库,它在一个视频图像盒中显示来自USB视频捕获设备的正在播放的视频,这与通常的.NET图像盒非常相似。我想在视频流上显示图形和文本 有没有办法叠加一个普通的图片盒,这样图像和文本就会出现在视频的顶部?看起来应该可以创建一个透明的PictureBox来显示它下面的内容,但是允许windows.drawing图形和文本以通常的方式写入PictureBox中。。。就像用一个神奇的记号笔在玻璃窗上画一样 你会怎么写呢?我通常使用VB.NET,但C也可以使用Visu

我正在使用一个第三方.NET视频捕获函数库,它在一个视频图像盒中显示来自USB视频捕获设备的正在播放的视频,这与通常的.NET图像盒非常相似。我想在视频流上显示图形和文本

有没有办法叠加一个普通的图片盒,这样图像和文本就会出现在视频的顶部?看起来应该可以创建一个透明的PictureBox来显示它下面的内容,但是允许windows.drawing图形和文本以通常的方式写入PictureBox中。。。就像用一个神奇的记号笔在玻璃窗上画一样

你会怎么写呢?我通常使用VB.NET,但C也可以使用Visual Studio 2005


Dave Emery

< P>你可能想看看这个应用程序的Windows演示基础。Winforms控件确实支持透明背景,但实际上它们只是通过拍摄下面的图片来假装支持。在某些情况下,我认为你的移动视频很可能就是其中之一,但这种技术并不能很好地工作。另一方面,WPF应该能够很好地处理这个问题。

你没有说,但我假设视频是用DirectShow渲染的。在这种情况下,您可以按照上面的建议使用WPF进行渲染,或者将自己的过滤器注入DirectShow FilterGraph。您可以制作一个过滤器,点击视频流并在自己的自定义控件中进行渲染,或者在渲染之前更改视频内容

但在您完成所有这些之前,如果VideoPictureBox与WinForm的双缓冲渲染配合使用,那么值得一试。可能不会,但如果你运气好的话,工作会少很多