我正在制作一个应用程序,允许用户应用某些工具来分析视频和图像。我需要帮助我如何在我的表单中加载到 Windows Media Player 的视频上实际绘制/写入并能够将其保存。它需要能够让用户在其上徒手绘制和绘制形状。 提前致谢,
克里斯:)
最佳答案
使用 winforms 中的 wmp 控件,这是一项非常重要的任务,即使不是不可能完成的任务。
我不知道有什么方法可以实际在 wmp 上绘图,但您可以在覆盖在 wmp 上的透明面板上绘图。如果视频正在播放,这将不起作用,但您可以在暂停时显示绘图。我已经使用这种技术来绘制类似于 wmp 的第 3 方视频控件。(编辑 - 这似乎不适用于 wmp 控件)
然而,由于真正的透明面板在 winforms 中也相当棘手,另一种方法是从视频中抓取图像并在叠加图像上绘制。同样,仅当它暂停时。
This商业控制确实可以在视频上绘制。它有一个事件可以触发您可以用来进行绘图的每一帧。不过,最大的缺点是您不能真正做任何太花哨的事情,因为您的绘图例程需要在绘制下一帧之前完成。
我强烈建议您使用 WPF(即使它是托管在 winforms 应用程序中的 wpf 控件)来显示您的视频。在 wpf 中绘制视频(包括播放视频)要容易得多。
编辑
我刚刚测试了使用透明面板在 wmp 上绘制,它的行为不像我的第 3 方控件那样,所以我建议你在 WPF 和 host that in your winforms app 中执行视频播放位. (我刚刚也使用@Callums inkcanvas 的建议对其进行了测试,效果非常好)
关于c# - 在 C# 中绘制视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3752016/