Отображать dicom в кнопке JavaFX

У меня есть много изображений dicom (dcm), которые я хочу отображать в виде эскизов в своей программе. Я могу загрузить его и нарисовать в отдельном окне с плагином ImageJ:

try {
    FileInputStream fis = new FileInputStream(dcms);
    DICOM d = new DICOM(fis);
    d.run(dcms);
    d.setTitle(title);
    d.show();
    d.draw();
} catch (Exception e) {e.printStackTrace();}

}

Но я хочу иметь возможность загружать его как изображение в кнопку JavaFX (в виде миниатюр), как я могу сделать с pngs:

try{
    Image picture = new Image(getClass().getResourceAsStream(dcms));
    bt.setGraphic(new ImageView(picture));
}

Я не смог найти в гугле подобного примера (большинство результатов приводит к программам для преобразования дикома в другое через программу). Но я не хочу конвертировать, а затем отображать, я просто хочу отображать его.

Вы знаете, возможно ли это? Или мне нужно будет преобразовать его перед загрузкой миниатюр?

РЕДАКТИРОВАНИЕ: я знаю, что могу сохранить каждое изображение где-нибудь, например, во временной папке, а затем загрузить его как изображение, но я все еще думаю, что это ненужный обходной путь. И я хотел бы избежать этого, если это возможно.


person Mansueli    schedule 06.05.2014    source источник


Ответы (1)


Я нашел способ использовать его:

            FileInputStream fis;
            try {
                fis = new FileInputStream(path);
                DICOM d = new DICOM(fis);
                d.run(path);
                Image picture = SwingFXUtils.toFXImage(d.getBufferedImage(), null);
                Button bt = new Button();
                bt.setGraphic(new ImageView(picture));
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

Опубликовано, потому что это может быть полезно для кого-то еще.

person Mansueli    schedule 06.05.2014
comment
Откуда взялся класс DICOM? Это предварительно встроено в JavaFX? - person Ihsan Haikal; 05.12.2016
comment
@IhsanHaikal, как вы можете видеть в моем вопросе, это из ImageJ - person Mansueli; 05.12.2016
comment
В вопросе не указан ImageJ, но теперь я его уже нашел. Спасибо - person Ihsan Haikal; 05.12.2016