我正在寻找可以快速更改图像的WPF图像控件。内置的WPF对于使用(缩放)的图像大小来说非常慢。我只需要约3 FPS。我考虑过放到WinForms甚至D3D,但我不确定这是最好的方法。
有人可以提出建议吗?
答案 0 :(得分:4)
WPF的Image
控件使用Windows的原生“Windows Imaging”和Direct3D子系统完成所有脏工作,因此如果使用正确的参数,它将与您将找到的任何内容一样快。 / p>
我怀疑问题是您的设置导致Windows Imaging以全分辨率加载图像,然后让Direct3D对其进行缩放。解决方法是在加载图片时进行缩放,方法是将您DecodePixelHeight
DecodePixelWidth
BitmapImage
设置为ImageSource
。
许多图形应用程序用来加快速度的另一种技术是在后台预加载图像。例如,一旦显示当前图像,Windows图片查看器就会自动开始加载下一个图像。
如果要预加载图像,请考虑在单独的线程中执行此操作。另外,请确保在创建BitmapCacheOption.OnLoad
时使用BitmapImage
,否则预先不会发生预加载(默认为OnDemand
)。