2012-10-03 59 views
2

我想讀取.tif圖像使用javax.media.jai.JAI。這裏是我的代碼:JAI ClassNotFound異常時調用JAI.create

import javax.media.jai.JAI; 
import javax.media.jai.RenderedOp; 

BufferedImage image = null; 
if(extension.toLowerCase().equals("tif")) { 
    RenderedOp op = JAI.create(fileName, file); 
    image = op.getAsBufferedImage(); 
} else { 
    image = ImageIO.read(file); 
} 

「文件」(java.io.File的)和 「文件名」(string)參數都很好。但是,當它到達「JAI.create(......)」行,我得到這個異常:

java.lang.ClassNotFoundException: javax.media.jai.JAI 

我不知道爲什麼它不能找到JAI。有任何想法嗎?

回答

6

JAI不附帶JDK。你分開得到它。找到合適的JAR庫here。然後將其添加到您的路徑。

注意:如果您使用Windows,您可以獲取jar並自行指定路徑。或者獲取將安裝相同的jar並將其添加到您的系統類路徑的exe文件。我寧願自己設置路徑。

在Ubuntu上,您還可以通過

sudo apt-get install libjai-core-java 

加載圖像安裝它可以這樣做:

public BufferedImage loadImage(String filePath){ 
    RenderedOp img = JAI.create("fileload", filePath); 
    return img.getAsBufferedImage(); 
} 

"fileload",爲文字字符串,是的名操作使用JAI.create()從文件加載圖像。如果fileName不等於"fileload",那麼也可能會引發異常。

+0

有沒有辦法將renderImage轉換成bufferedImage?我將需要它作爲另一個進程的緩衝圖像 – dmoss18

+0

如何在此鏈接上執行此操作:http://www.jguru.com/faq/view.jsp?EID=114602 – davidXYZ

+0

仍然得到相同的異常。我正在使用eclipse,並將jai_core.jar和jai_codec.jar添加到構建路徑中,但那不起作用。還有其他建議嗎? – dmoss18