我有一个项目需要执行快速图像渲染。
目前,我使用禁用拉伸(stretch)的图像控件。更新由计时器通过设置 Source 属性进行。
WriteableBitmap frame = Player.Get().GetFrame();
if (frame != null)
image.Source = frame;
这部分成为性能瓶颈。更清楚 image.Source = frame 是一个瓶颈。
我查看了 MediaElement,但它不适用。
有什么方法可以更快地执行它吗?
也许是 GDI BitBlt 或类似方法中的某种方法?
提前致谢。
最佳答案
您不会从 WPF 中获得太多性能。即使是 MediaElement 也无法正确处理高清视频,没有闪烁和滞后。
使用 WindowsFormsHost 标记在您的 WPF 应用程序中托管一个 WinForms 元素,如果您想使用 GDI,则在那里进行 blitting。虽然 GDI 主要是基于软件的,但您可能想要查看 DirectX 或 GDI+。
关于WPF在UI中快速绘制图像的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16153852/