我有一個很大的swing組件來寫入TIFF。該組件太大而無法將TIFF加載到內存中,所以我需要製作一個大型的BufferedImage,它由基於磁盤的WritableRaster(如提到的here)支持或使用JAI。使用JAI將擺動組件寫入大型TIFF圖像
JAI似乎是更好的答案,除了項目的完全混淆。
鑑於這樣的情況,有人可以概述將我的swing組件寫入平鋪TIFF而不會耗盡內存的步驟嗎?
圖像尺寸將可能10000x700
理想我想建立某種形式的基於磁盤的形象,並寫入將組件的部分,每個部分寫被刷新到磁盤。
編輯
我想我可以用一個ImageWriter做到這一點,但是我得到的時候我叫一個NoSuchElementException:我jai_code.jar和jai_core.jar罐子
ImageWriter imageWriter = ImageIO.getImageWritersByFormatName("tif").next();
在我的班級路線上,還有什麼我需要做的?
編輯 我可以使用JAI創建一個非常大的TIFF,但JAI不支持TIFF壓縮,所以文件爲92 MB。
如果我安裝JAI-ImageIO,我可以使用ImageWriter創建壓縮的TIFF,但只能從Raster或BufferedImage創建,而我沒有足夠的內存。
有沒有辦法做兩步法,使用JAI創建大型TIFF,然後壓縮大型TIFF而不將整個東西加載到內存中?
你如何創建TiledImage? – 2011-06-16 14:31:07
我已經添加了上面的TiledImage創建。我直接在圖像中設置樣本,因爲我必須從我的源代碼中通過px加載px。所以我在裝載時一直在內存中存儲一塊瓦片。 – Indimental 2011-06-16 14:57:42