2011-02-19 23 views
1

我試圖加載一個大的圖像,並將其裁切成真正快速且低內存消耗的瓷磚。例如,gdal2tiles腳本http://www.maptiler.org/這樣做,但gdal2tiles不會按照我希望的方式輸出切片。因此我決定使用ruby和RMagick(Imagemagick)開發我自己的版本(gdal2tiles幾乎不使用任何內存)。如何使用RMagick讀取圖像的一部分?

我在使用RMgick時注意到的是,我需要首先將整個圖像加載到內存中,這會殺死我的系統。有沒有辦法讀取圖像文件的一部分操作它,然後讀取其餘的?或者,也許我應該以其他方式做,或者使用其他庫。

+0

我已經找到了流選項http://www.imagemagick.org/Usage/basics/#stream如何使用它的任何想法通過RMagick? – ddayan 2011-02-19 03:34:57

回答

0

首先要做的只是調用descructive方法。不要撥打img.crop,而是撥打img.crop!,這樣可以節省一些內存。

但您可能對其中一種選擇感興趣。您所描述的內存問題在RMagick中幾乎無法避免。正因爲如此,RMagick有相當多的alternatives。因爲你只需要簡單的任務,所以我認爲下面的庫對你來說是有用的,因爲它們是非常優化的,但是它們的特性是有限的。