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

标签 wpf image

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

目前,我使用禁用拉伸(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/

相关文章:

python - 使用 OpenCV 检测 .pdf 格式图像中的水平空白行

wpf - .NET Framework 3.0 (WPF) 的 Visual Studio 2005 扩展

c# - 当我们将屏幕分辨率从低到高更改时动态设置 WPF 窗口的位置

android - 将图像裁剪为带有边框的圆形

javascript - 使并排图像在移动设备上移动为垂直图像

java - 为什么相同的图像(编辑: PNG) produce two slightly different byte arrays in Java?

javascript - 预加载图像以加快显示速度

WPF MVVM如何在 View 更改后重新居中应用程序窗口?

c# - 尽管 CanUserSortColumns ="true",但使用 ItemsSource 填充的 DataGrid 无法排序

c# - 需要解雇员工的能力