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

测试图像是否加载成功的一种方法是检查图像的宽度和高度是否都为零:

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 回答