2012-06-28 7 views
0

В настоящее время я использую ImageJ jar (ij.jar) в приложении Java, которое я создаю, и мне удалось все работать. Тем не менее, существует вероятность того, что, когда я исполняю строку:Проверьте, есть ли у ImageJ открытое изображение

ImagePlus image = new ImagePlus(path); 

(где путь пользователь указан путь к изображению), изображение может не быть там. Библиотека ImageJ не будет выдавать ошибку до тех пор, пока не будут доступны методы image, и в это время ImageJ будет печатать на консоли There are no images open. и прекратить выполнение программы. Я считаю, что ImageJ на самом деле вызывает System.exit(), когда он печатает эту строку, так как мое приложение заканчивается, включая потоки Deamon.

Есть ли способ использовать ImageJ для проверки того, было ли изображение успешно открыто? Или я должен просто проверить, существует ли файл с использованием класса файлов Java?

EDIT:

Чтобы уточнить, это многопоточное приложение, которое может пытаться открыть и обрабатывать большое количество изображений одновременно. Класс 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... 
} 

Я боюсь, что я не могу воспроизвести поведение вы описываете, где приложение выходит, хотя, возможно, это не сработает для вас ...

Смежные вопросы