Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何处理WPF中的巨大tif?_Wpf_Image_Tiff_Bitmapimage - Fatal编程技术网

如何处理WPF中的巨大tif?

如何处理WPF中的巨大tif?,wpf,image,tiff,bitmapimage,Wpf,Image,Tiff,Bitmapimage,我有一个8位的tiff,14406x9606像素,当通过BitmapImage加载时会抛出System.OutOfMemoryException。作为全深度位图,其大小约为400兆。有没有办法将图像分割成更易于管理的块?我曾尝试使用DecodePixelHeight以较低的分辨率加载它,这是可行的,但我需要在缩放级别更改时重新加载。有没有现成的工具可以处理WPF中不同缩放级别的超大图像?没有任何内置工具可以直接处理这一问题DecodePixelHeight,可能是框架本身的最佳选择 但是,您可以

我有一个8位的tiff,14406x9606像素,当通过BitmapImage加载时会抛出System.OutOfMemoryException。作为全深度位图,其大小约为400兆。有没有办法将图像分割成更易于管理的块?我曾尝试使用DecodePixelHeight以较低的分辨率加载它,这是可行的,但我需要在缩放级别更改时重新加载。有没有现成的工具可以处理WPF中不同缩放级别的超大图像?

没有任何内置工具可以直接处理这一问题<正如您所提到的,code>DecodePixelHeight,可能是框架本身的最佳选择

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

您可能需要尝试使用库。它是用纯C代码编写的,免费的,开源的(商业友好的BSD许可证)

Net可以处理大小高达4 GB的TIFF文件,并可用于打开文件而无需解码所有样本。该库还支持多条和平铺TIFF文件

免责声明:我是该库的维护者之一