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);
}

「file」(Java.io.File) および「fileName」(文字列) パラメータは問題ありません。しかし、「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 に答える