我使用这个样本代码 https://www.codeproject.com/Articles/2632/DirectShow-MediaPlayer-in-C 而只需要一点点change.i尝试在IVideoWindow前面添加图片框,但PictureBox的是ALWAYSE背后IVideoWindow.i利用家长和bringfront但非前他们工作。我只需要在视频前将图片显示为徽标或水印。添加图片框在IVideoWindow
-1
A
回答
1
DirectShow
和您正在使用的整个软件包(即Windows窗体)确实很旧。首先让我告诉你发生了什么。 DirectShow
和所有其他DirectX
图形包如Direct3D
直接与图形卡一起工作,并直接在显示器上绘制图层,Windows甚至没有意识到,更不用说在它上面画东西了。因此,除非您使用DirectX在您创建初始窗口的相同设备中呈现要显示的内容,否则无法完成此操作。
好的,那么解决方案是什么?
我不知道你在做什么,但很多年前我用WPF和它WritableBitmap
呈现从IP摄像机接收到的图像屏幕。 WPF在DirectX内部工作,使其快速高效。你也有能力写下它,因为它只是一个正常的控制,你可以随心所欲地做任何事情。
希望它能帮助:)
1
视频播放的该方法使用不与的WinForms拌匀一定的能力,所以你不能把一个控制在视频前,在准确的UI结合这一点。
这是设计行为。您必须提取视频帧并使用常规的WinForms API呈现它们,或者使用DirectShow.NET应用您的水印,并显示组合视频,将原始视频帧与徽标合并。
请参阅有关覆盖显示的视频的相关问题:
DirectShow.NET的BitmapMixer样品可能会有所帮助:
BitmapMixer是如何使用VMR9使用 来绘制视频的示例。
此示例主要围绕IVMRMixerBitmap9接口构建。 此接口接受位图作为GDI设备上下文或作为Direct3D Surface。 Direct3D Surface的主要优势在于它可以使用真正的Alpha透明度。 GDI DC不支持 alpha位图,透明度通过使用颜色键控来实现。
相关问题
- 1. 隐藏IvideoWindow图片
- 2. 在C#中添加自动图片框
- 3. 添加图片在消息框中(UIAlertController)
- 4. 添加在图片
- 5. 在图片上添加图片点击
- 6. 将图片框添加到前一个
- 7. 将边框添加到图片
- 8. C#添加图片到图片框列表
- 9. 将图片添加到运动图片框
- 10. 在UIPickerView中添加图片
- 11. 添加图片在块
- 12. 添加图片到在openlayer
- 13. 在silverlight中添加图片
- 14. 添加卡片图片C#
- 15. 如何在我的框架中添加加载图片?
- 16. CKEDITOR添加图片
- 17. Visual C++/CLI加载图像添加到资源图片框
- 18. 如何添加图片到图片?
- 19. 在谷歌地图中添加图片
- 20. 在Android中添加图片视图
- 21. 在图片框
- 22. 添加图片在提示消息框中标题与Swift 3
- 23. 如何在sencha touch的文本框中添加图片
- 24. 在图像幻灯片放映之外添加边框
- 25. 添加CellPaint事件图片框与网格在上面画了
- 26. 如何使用jquery在文本框中添加背景图片
- 27. 如何使用visual C++在win32 API中添加图片框
- 28. 如何在图片css上添加边框到博主
- 29. 通过C类在窗体上添加一个图片框#
- 30. 如何在html中添加文本框中的图片?
视频以视频叠加播放,允许播放器卸载解码视频流的繁重工作,并将像素爆炸至GPU。您只能通过自己创建叠加层来超越叠加层。易于在Winforms中使用TransparencyKey属性。示例代码保持窗体在正确的位置[在这里](http://stackoverflow.com/a/4503371/170340)。 –