在WPF中有效显示和缩放/平移大图像

|| 我目前正在开发一个需要显示8800x6800或更大尺寸的大型工程图的应用程序。要求指出用户应该能够平移和缩放图像。理想情况下,他们也希望能够对图像进行注释。如果您查看Windows Photo Viewer,则会看到我想要模拟的性能和功能,减去注释部分。 到目前为止,我已经尝试了几种不同的方法来显示图像,但似乎没有一种方法可以提供我想要的性能。它们要么占用大量内存,要么速度很慢。这些是我采用的方法:
Viewbox
,the1ѭ是孩子。内存使用还可以,但是重新设置ѭ0的大小很慢。因此,我还没有尝试使用这种方法进行缩放/平移。 设置为
Image
InkCanvas
作为背景或儿童。用这种方法,通过ѭ5和ѭ6缩放/平移似乎很一般,但是内存使用可能会在450-600 MB范围内增加。 这是我第一次尝试使用.NET / WPF进行图像处理,而我对此主题的了解非常有限。处理大型图像(尤其是使用WPF)的最佳做法是什么?我已经读过,平铺图像(例如进行深度缩放)会有所帮助,但是不确定如何执行此操作,或者不确定这是否是我的最佳选择。您是否知道任何资源可以帮助我更好地理解这一点?     
已邀请:
通过“平铺”,如果您的意思是将图像拆分成单独的部分,并且一次仅显示一小部分子集以提高性能,则将其称为“虚拟化”。 Microsoft有一个关于虚拟化项目的优秀博客,甚至提供了VirtualCanvas的参考实现,您可以将其用作虚拟化控件的起点。 链接在这里:http://blogs.msdn.com/b/jgoldb/archive/2008/03/08/performant-virtualized-wpf-canvas.aspx 请注意,此博客在讨论中包括缩放和缩放,以及有关平滑滚动和抢先加载磁贴以实现最佳UI响应的讨论。     

要回复问题请先登录注册