2010-01-29 87 views
2

我正在寻找一个WPF图像控件,它可以快速更改图像。内置的WPF对于使用(缩放)的图像尺寸来说非常慢。我只需要约3 FPS。我曾考虑过下载WinForms甚至D3D,但我不确定这是否是最好的方法。快速WPF图像控制

任何人都可以提出一些建议吗?

回答

4

WPF的Image控件使用Windows的本机“Windows Imaging”和Direct3D子系统完成所有脏东西,因此,如果使用正确的参数,它的速度将与您将找到的任何东西一样快。

我怀疑问题是您的设置导致Windows Imaging以完全分辨率加载图像,然后让Direct3D对其进行缩放。解决这个问题的方法是在您使用ImageSourceBitmapImage时,通过设置DecodePixelHeightDecodePixelWidth来加载图像。

许多图形应用程序用来加快速度的另一种技术是在后台预加载图像。例如,一旦显示当前图像,Windows图片浏览器就会自动开始加载下一张图像。

如果您正在预加载图像,请考虑在单独的线程中执行此操作。当您创建BitmapImage时,请确保您使用BitmapCacheOption.OnLoad,否则预加载实际上不会发生(默认值为OnDemand)。

+0

谢谢,这是非常有用的。我有你提到的预加载问题,所以BitmapCacheOption.OnLoad应该非常有用。 – 2010-02-01 01:13:57