wpf - 如何处理 WPF 中的巨大 tif?

标签 wpf image tiff bitmapimage

我有一个 14406x9606 像素的 8 位 tiff,当通过 BitmapImage 加载时会抛出 System.OutOfMemoryException。作为全深度位图,其大小约为 400 兆。有没有办法将图像划分为更易于管理的块?我已经尝试使用 DecodePixelHeight 以较低的分辨率加载它并且这有效,但是每当缩放级别发生变化时我都需要重新加载。是否有任何既定工具可以在不同的缩放级别处理 WPF 中的真正大图像?

最佳答案

没有任何内置的东西可以直接处理这个问题。 DecodePixelHeight ,正如您所提到的,可能是框架本身的最佳选择。

但是,您可以使用类似 C# wrappers for GDAL 的内容。 . GDAL 处理非常大的 TIFF 文件,包括带有金字塔的文件,并允许您(非常快速地)以不同的分辨率打开 TIFF,而无需将整个文件加载到内存中。这仍然需要在分辨率更改时刷新/重新加载,但它们的 TIFF 加载速度比框架的图像类要快得多,因为它旨在处理非常大的图像。

关于wpf - 如何处理 WPF 中的巨大 tif?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5122403/

相关文章:

c# - ListView 更改 Metro Apps 中的文本大小

r - 将绘图保存到 tiff,以高分辨率发布(在 R 中)

python - 在 Python 中读取 tiff 图像元数据

c++ - LibTIFF:从 TIFF 图像中提取所有标签

wpf - 如何在其中使用 Binding 和 Binding

c# - 如果命令被禁用,如何更改上下文菜单项的样式

html - CSS 如何在图片下方添加一个按钮

css - 如何使用图片的一部分作为缩略图而不将其大小调整为缩略图

WPF listview/gridsplitter/scrollviewer调整大小问题

javascript - jQuery:如何使用 img.attr ('src' , 'img.png' )为图像源的变化设置动画(淡入淡出)?