2012-06-28 62 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... 
} 

恐怕我不能重現你的描述中行爲應用程序退出,但是,所以也許這不適合你...