我在显示dicom文件时遇到了一些麻烦。我已经尝试了很多东西来将图片显示在框架上,但它所做的就是制作一个错误,即“图像为空”。任何建议,将不胜感激。 (我知道图像不是空的,并且能够从笔记本电脑访问图像)。
谢谢。
这是我的代码(用java编码):
class Open{
public static void main(String s) throws IOException{
String [] array = s.split("/");
String k = array[0];
k+= "/";
k += array[1];
k+= "/";
k += array[2];
k+= "/";
k+= array[3];
k+= "/";
k+= array[4];
k+= "/";
System.out.println(k);
System.out.println(s.length());
if(s.length() == 0){
System.out.println("The path and filename are empty!");
System.exit(0);
}
File source = new File(k, array[5]);
final Image image = ImageIO.read(source);
//final BufferedImage image = ImageIO.read(new File(k, array[5]));
if(image == null){
System.out.println("The image is empty or can't be read!");
System.exit(0);
}
JFrame frame = new JFrame();
final Rectangle bounds = new Rectangle(0,0,240, 240);
JPanel panel = new JPanel();
//{
// public void paintComponent(Graphics g){
//// Rectangle box = g.getClipBounds();
//// ((Graphics2D)g).fill(box);
////
//// if(bounds.intersects(box)){
// g.drawImage(image,0,0,null);
//// }
// }
// };
JLabel b = new JLabel(new ImageIcon(image));
panel.add(b);
frame.getContentPane().add(panel);
panel.setPreferredSize(new Dimension(300, 300));
frame.pack();
frame.setVisible(true);
}
}
答案 0 :(得分:0)
您可以使用PixelMed执行此操作。文档几乎不存在,但有javadoc。
如果您主要打算显示图片,则应该可以使用com.pixelmed.display
包中的SourceImage
和SingleImagePanel
来加载和显示图片。如果要解析DICOM属性,可以从com.pixelmed.dicom.AttributeList
中的一个读取方法开始。