2010-12-22 162 views
0

我有一個非常大的圖像(〜200,000x200,000像素)的形式的RenderedImage。我裁剪它,然後使用JAI的ScaleDescriptor(它返回一個RenderedOp)來縮放它。我的最終圖像只有30x30,但是當我從縮小的圖像中調用getAsBufferedImage(我首先獲得PlanarImage)時,創建需要幾分鐘的時間。我猜想有一些參考資料可以回溯到需要這麼長時間的原始圖像,但我不確定。有誰知道爲什麼這需要這麼長時間?Java高級圖像縮放圖像

感謝, 傑夫

回答

1

隨着JAI你正在建設一個渲染鏈;所以當你調用.scale時,它實際上並沒有在這一點上進行縮放,而只是將它添加到鏈中(因此在調試器中它將是即時的)。只有在最後,當你意識到新圖像中的像素時,操作纔會發生。

您正在做的縮放量看起來很多,可能會非常昂貴。我幾年沒有做過JAI;你能指定縮放算法嗎?當你可以避開更簡單的事情時,它可能會做不必要的插值。

+0

@danpaq,謝謝你,讓我試試,看看我能想出。你會推薦其他圖書館在大圖像上進行圖像縮放和裁剪嗎?我不需要使用JAI。 – 2010-12-22 17:17:17