我正在尝试使用javax.media.jai.JAI读取.tif图像。这是我的代码:

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。有任何想法吗?

最佳答案

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",那也可能引发异常。

关于java - 调用JAI.create时发生JAI ClassNotFound异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12716213/

10-10 23:33