2

我在数组中有原始位图数据(像素颜色,32 位)。有没有一种简单的方法可以在 D3DImage 上显示这样的“精灵”?最好不使用第三方库(例如 SharpDX)。

背景:我有来自非托管 DLL 的原始位图帧,我需要在 WPF 中以高帧率/低 CPU 使用率显示它们。到目前为止,我已经尝试过 WriteableBitmap 和 InteropBitmap,但它们太慢了(我在最大化窗口(1680x1050 显示)上获得 ~110 fps,Core i5;这只是一个填充内存的简单测试。我相信现代计算机应该在不使用 100% CPU 核心时间的情况下更快地执行此操作)。我也在查看 VideoRendererElement(在 C# 中显示来自原始未压缩字节源的实时视频:WPF 与 Win 表单),但这有点过于复杂(涉及非托管 dll、regsvr32 注册等)。

正如我从 D3DImage 示例中看到的那样,它在不给 CPU 带来压力的情况下实现了良好的帧速率。我想知道是否可以将它用于位图显示。

UPD: 我发现了这个: http: //www.codeproject.com/Articles/113991/Using-Direct2D-with-WPF

这基本上就是我想要的。我已经将它插入到我的项目中,它与 InteropBitmap 相当,甚至慢了一点。在我的情况下,内存性能似乎是一个瓶颈。在这两种情况下,大部分时间都花在复制位图上(我使用非托管 memcpy)。

4

0 回答 0