libvips可以高效地处理巨大的(大于RAM)图像。它是一个流式图像处理库,因此它可以(在这种情况下)同时解压缩,调整大小,平铺和写入所有内容,而不需要在内存中存储整个图像或者不需要任何临时文件。
dzsave
运营商将编写DeepZoom/Zoomify/Google Maps金字塔。你可以在命令行这样运行:
$ 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的图像23万片。这是与一个机械硬盘,它可能会更快与SSD。有一个blog post introducing dzsave。
它a Python binding,所以你也可以这样写:
import pyvips
image = pyvips.Image.new_from_file("y.tif", access = "sequential")
image.dzsave("x")
的access
选项告诉libvips,它应该流中的图像。它可以阅读BigTIFF和PSB,但您会发现TIFF加载器速度更快。
如果你没有找到更好的选择,你可以走火花分布的计算路线。 –
ImageMagick可以通过-crop操作符来实现。请参阅http://www.imagemagick.org/Usage/crop/#crop上的切片部分。我相信有Python ImageMagick API和Python Wand。 – fmw42
我建议你看看'vips' http://www.vips.ecs.soton.ac.uk,也许它的作者约翰(@ user894763)会有一些建议。 –