我目前正在开发一个需要显示 8800x6800 或更大的大型工程图的应用程序。要求规定用户应该能够平移和缩放图像。理想情况下,他们也希望能够对图像进行注释。如果您查看 Windows 照片查看器,您将看到我希望模拟的性能和功能,减去注释部分。
到目前为止,我已经尝试了几种不同的方法来显示图像,但似乎没有一种方法能够提供我正在寻找的性能。它们要么占用大量内存,要么速度很慢。这些是我采取的方法:
Viewbox
与Image
小时候。内存使用还可以,但重新调整大小Viewbox
很慢。因此,我还没有尝试使用这种方法进行缩放/平移。InkCanvas
将Image
集合作为背景或作为孩子。使用这种方法缩放/平移ScaleTransform
看起来TranslateTransform
一般,但内存使用量可能会在 450-600 MB 范围内上升。
这是我第一次尝试使用 .NET/WPF 进行图像处理,我对这个主题的了解相当有限。处理大图像(尤其是 WPF)有哪些最佳实践?我读过平铺图像(如深度缩放)可以提供帮助,但不确定如何做到这一点,或者这是否是我的情况下的最佳主意。您知道任何可以帮助我更好地理解这一点的资源吗?