使用 DirectShow.NET 在 C# 中的 IVideoWindow 上显示半透明图像对象

发布于 2024-12-08 23:52:15 字数 215 浏览 0 评论 0 原文

我一直在使用 DirectShow.NET 与 C# 中的网络摄像头进行交互,到目前为止一切都很顺利。但是,现在我正在尝试设置一种方法来“裁剪”图像(虽然它仍然显示为网络摄像头预览)。

基本上,我试图在 IVideoWindow 对象之上显示某种几乎透明的图像。然而,在 C# 中处理透明度却远非易事。

那么,如何在 IVideoWindow 之上放置一个 Image 对象呢?谢谢!

I've been using DirectShow.NET to interface with a webcam in C# and so far everything has been going smoothly. However, right now I'm working on trying to set up a method to "crop" an image (while it's still being displayed as a webcam preview).

Basically, I'm trying to show some kind of a mostly transparent image on top of the IVideoWindow object. Dealing with transparency in C#, however, has been pretty far from a cakewalk.

So, how can I layer an Image object on top of an IVideoWindow? Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

若相惜即相离 2024-12-15 23:52:15

有两种方法可以实现此目的:

  • 使用视频转换过滤器并将混合视频传送到渲染器(即图片 + 您的叠加层)
  • ,或者使用 VMR 的“mixerbitmap”功能在演示时叠加

DirectShow.NET 有上述第二个示例:

示例\VMR9\BitMapMixer
BitmapMixer 是如何使用 VMR9 在视频上绘制内容的示例。

那里的另一个样本:

样本\玩家\DxText
示例应用程序展示了如何在数据流上叠加文本字符串。该流是从 avi 文件读取的。

MSDN 论坛。

There are two approaches how to achieve this:

  • to use a video transformation filter and deliver mixed video to the renderer (that is, picture + your overlay)
  • or, use VMR's 'mixerbitmap` feature to overlay at presentation time

DirectShow.NET has a sample for the second mentioned above:

Samples\VMR9\BitMapMixer
BitmapMixer is an example of how to draw things over a video using VMR9.

Another sample there:

Samples\Players\DxText
A sample application showing how to superimpose text strings on a datastream. The stream is read from an avi file.

Also discussed many times on MSDN Forums.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文