在Python中处理巨大的(可能超过30000x30000)图像?

2024-05-02 11:54:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用一个名为深度缩放.py将大的开销渲染(通常超过1GP)转换为深缩放图像格式(即google地图风格的tile格式),但不幸的是,PIL支持PIL,由于内存限制,PIL通常会崩溃。创作者说他正在研究VIP,但即使是nip2(VIP的GUI前端)也无法打开图像。在另一个由其他人提出的问题中(尽管是在同一个主题上),有人建议OpenImageIO,它看起来有这个能力,并且有Python包装器,但是没有提供任何适当的二进制文件,在Windows上编译它是一场噩梦。在

我可以使用Python的其他库吗?我尝试过PythonMagickWand(ImageMagick的包装器)和PythonMagick(GraphicsMagick的包装器),但是这两种方法都会遇到内存问题。在


Tags: 内存py图像主题pil风格格式google
3条回答

听起来你是在尝试使用地理参考图像或类似的东西,而地理信息系统解决方案听起来更合适。我将使用GDAL——这是一个非常好的库,并且通过Swig提供了易于使用的Python绑定。在

在Windows上,安装它最简单的方法是通过frankwaremandam的FWTools软件包。在

我遇到了一个非常相似的问题,最后我用netpbm解决了它,它在windows上运行得很好。Netpbm在转换巨大的.png文件,然后进行切片、裁剪、重新组合(使用pamcrop、pamdice和pamundice)以及转换回.png时没有任何问题,根本不需要占用太多内存。我只在应用程序中包含了必要的netpbm二进制文件和dll,并从python调用它们。在

libvips配有一个非常快速的DeepZoom创建者,可以处理任何大小的图像。尝试:

$ vips dzsave huge.tif mydz

将平铺写入mydz_files,并为您编写一个mydz.dzi信息文件。它通常比deepzoom.py快10倍,而且没有大小限制。在

有关dzsave的介绍,请参见this chapter in the manual。在

相关问题 更多 >