我正在尝试加载一个大图像并将其快速裁剪到瓷砖中并且内存消耗很低。一个例子是gdal2tiles脚本http://www.maptiler.org/执行它的方式,但gdal2tiles不会按照我希望的方式输出切片。因此我决定使用ruby和RMagick(Imagemagick)开发自己的版本。(gdal2tiles几乎不使用任何内存)。
使用RMgick时我注意到的是我需要先将整个图像加载到内存中,这样才能杀死我的系统。有没有办法读取一部分图像文件操纵它,然后读取其余的?或者也许我应该以其他方式做或使用其他库。
答案 0 :(得分:0)
首先要做的只是调用descructive方法。不要拨打img.crop
而是img.crop!
,这样可以节省一些内存。
但您可能对其中一种选择感兴趣。你描述的记忆问题,对于RMagick来说几乎是不可避免的。由于这个原因,RMagick有很多alternatives。
因为您只需要简单的任务,我认为以下库对您有用,因为它们已经过极优化,但它们的功能集有限。