3

我有一个项目需要执行快速图像渲染。

目前,我使用禁用拉伸的图像控制。更新由计时器通过设置 Source 属性进行。

WriteableBitmap frame = Player.Get().GetFrame();
if (frame != null)
     image.Source = frame;

这部分成为性能瓶颈。更清楚 image.Source = frame 是一个瓶颈。

我查看了 MediaElement,但它不适用。

有什么方法可以更快地执行它吗?

也许像 GDI BitBlt 或类似的一些方法?

提前致谢。

4

2 回答 2

1

您不会从 WPF 中获得太多性能。即使是 MediaElement 也无法正确处理高清视频,没有闪烁和滞后。

使用 WindowsFormsHost 标记在您的 WPF 应用程序中托管一个 WinForms 元素,如果您想使用 GDI,则在那里执行 blitting。尽管 GDI 主要是基于软件的,但您可能需要查看 DirectX 或 GDI+。

于 2013-04-22T18:15:36.377 回答
1

如果您真的需要性能,最好的选择可能是为 bitblt 编写一个小型包装器。

也许这两篇文章对你有帮助:

BitBlt 点网样式

使用 BitBlt 复制和粘贴图形

于 2013-04-22T18:34:53.583 回答