2012-06-28 61 views
0

我正在使用ImageJ jar(ij.jar)在我正在构建的Java应用程序中,并设法让所有的东西都能正常工作。然而,存在这样的可能性:当我执行行:检查ImageJ是否打开图像

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")调用时具有奇怪的行为。测试图像是否已成功加载

回答

1

一种方法是检查图像的宽度和高度是否均为零:

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

恐怕我不能重现你的描述中行为应用程序退出,但是,所以也许这不适合你...