用于在UI中绘制图像的WPF快速方法

时间:2013-04-22 18:12:23

标签: wpf image

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

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

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

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

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

有没有办法更快地执行它?

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

提前致谢。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

如果你真的需要性能,最好的办法就是为bitblt编写一个小包装器。

也许这两篇文章可以帮助你:

BitBlt Dot Net Style

Using BitBlt to copy and paste graphics