您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Python中调整大图片的大小(大于可用的RAM)

在Python中调整大图片的大小(大于可用的RAM)

libvips可以有效地处理巨大(大于RAM)的图像。它是一个流式图像处理库,因此(在这种情况下)它可以同时解压缩,调整大小,平铺和写入所有内容,而无需将整个图像存储在内存中或需要任何临时文件

dzsave操作会写的DeepZoom / Zoomify /谷歌地图金字塔。您可以从命令行像这样运行它:

$ vipsheader y.tif
y.tif: 104341x105144 uchar, 3 bands, srgb, tiffload
$ ls -l y.tif
-rw-r--r-- 1 john john 32912503796 Jun 13 13:31 y.tif
$ time vips dzsave y.tif x
real    3m4.944s
user    9m21.372s
sys 7m20.232s
peak RES: 640mb
$ ls -R x_files/ | wc
 227190  227172 2784853

因此,在我的桌面上,它在3分钟内将32GB的图像转换为230,000个图块。带有机械硬盘,使用固态硬盘可能更快。文档中有一章介绍dzsave

它具有Python绑定,因此您还可以编写:

import pyvips

image = pyvips.Image.new_from_file("y.tif", access="sequential")
image.dzsave("x")

access选项告诉libvips它应该流式传输图像。它可以读取BigTIFF和PSB。您会发现BigTIFF更快,并且需要更少的内存。

python 2022/1/1 18:51:27 有532人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶