0

私は現在、作成中の Java アプリケーションで ImageJ jar (ij.jar) を使用しており、すべてを機能させることができました。ただし、次の行を実行すると、次の可能性があります。

ImagePlus image = new ImagePlus(path);

(ここで、パスはユーザーが指定した画像へのパスです)、画像が存在しない可能性があります。ImageJ ライブラリは、のメソッドにimageアクセスするまでエラーをスローしません。その時点で、ImageJ はコンソールに出力There are no images open.し、プログラムを終了します。私のアプリケーション全体が終了するため、その行を出力するときにImageJが実際に呼び出しているとSystem.exit()思います-Deamonスレッドを含みます。

ImageJ を使用して、画像が正常に開かれたかどうかを確認する方法はありますか? または、Java の File クラスを使用してファイルが存在するかどうかを確認する必要がありますか?

編集:

明確にするために、これは同時に多くの画像を開いて処理しようとする可能性のあるマルチスレッドアプリケーションです。ImageJ クラス ( IJ) には画像を開く関数がありますが、シングルトン クラスであるため、複数の呼び出しが同時に発生するIJと奇妙な動作をします。IJ.openImage("string")

4

1 に答える 1

1

画像が正常に読み込まれたかどうかをテストする 1 つの方法は、画像の幅と高さが両方ともゼロかどうかを確認することです。

ImagePlus image = new ImagePlus("/non/existent");
if (image.getWidth() == 0 && image.getHeight() == 0) {
    // Then the image wasn't loaded...
}

残念ながら、アプリケーションが終了する場所で説明されている動作を再現できないので、これはうまくいかないかもしれません...

于 2012-07-02T08:21:16.353 に答える