WPF或DirectX用于平移和缩放5000x5000图片?

时间:2011-03-24 09:42:14

标签: c# wpf directx zooming panning

我当前的代码是普通的WPF,带有自定义图像视图。我需要平移和缩放非常高分辨率的图片,但当然需要大量的CPU-Power才能做到这一点。

我的问题是:如果我将控件从图像视图更改为类似directX,这会增加我的缩放和平移到期,或者不是有这么大的区别吗? (我们使用的显卡是Nvidia ion2,CPU是智能原子,最高可达2 Ghz)

3 个答案:

答案 0 :(得分:3)

2D加速并不像3D那样完美。请在此处查看benchmarks。 我相信使用图片作为纹理并控制相机进行平移和缩放应该会提高性能。

答案 1 :(得分:0)

据我所知,WPF使用DirectX来呈现其内容,所以我认为这不会给你带来高性能提升。

如果您遇到性能问题,我认为答案就在于查看您的缓存算法。

答案 2 :(得分:0)

WPF图形功能不是很强大。我们在Direct3D9中进行了所有图形渲染,并且只在D3DImage控件中显示3D场景。

在谈论大型位图渲染时,我们发现最好的方法是创建Direct3D纹理。它的创建速度相当快,当图像尺寸小于GPU本身支持时(cap.MaxTextureWidth,caps.MaxTextureHeight),渲染本身非常快。通常为8k x 8k或16k x 16k。谈论数百MB的位图,也应该足以供你使用。

要查看可以使用它获得的性能,您可以下载我们的Chart control,将大位图设置为背景图像到地理地图。那么你也看到它的速度和速度有多快平等。打败WPF内置图像处理肯定:-)

(我是Arction的LightningChart开发人员之一)