我目前正在我正在构建的 Java 应用程序中使用 ImageJ jar (ij.jar),并已设法使一切正常工作。但是,当我执行该行时有可能:
ImagePlus image = new ImagePlus(path);
(其中路径是用户指定的图像路径),该图像可能不存在。在访问image
的方法之前,ImageJ库不会抛出错误,此时,ImageJ将打印到控制台There are no images open.
并终止程序。我相信 ImageJ 在打印该行时实际上正在调用 System.exit()
,因为我的整个应用程序终止了——包括 Deamon 线程。
有没有办法使用 ImageJ 检查图像是否成功打开?或者我应该使用 Java 的 File 类检查文件是否存在?
编辑:
澄清一下,这是一个多线程应用程序,可能会尝试同时打开和处理许多图像。 ImageJ 类 (IJ
) 具有打开图像的函数,但 IJ
是一个单例类,因此在多次调用 IJ.openImage("string")
同时发生。
最佳答案
测试图像是否加载成功的一种方法是检查图像的宽度和高度是否都为零:
ImagePlus image = new ImagePlus("/non/existent");
if (image.getWidth() == 0 && image.getHeight() == 0) {
// Then the image wasn't loaded...
}
不过,恐怕我无法重现您所描述的应用程序退出位置的行为,所以也许这对您不起作用......
关于java - 检查 ImageJ 是否打开了图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11249347/