2

我正在尝试使用 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)和“文件名”(字符串)参数很好。但是当它到达“JAI.create(...)”行时,我得到了这个异常:

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

我不确定为什么它找不到 JAI。有任何想法吗?

4

1 回答 1

6

JAI 不随 JDK 一起提供。你单独得到它。在这里找到合适的 JAR 库。然后将其添加到您的路径中。

注意:如果您使用的是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"

于 2012-10-03T20:28:13.923 回答