Java 在屏幕上显示DICOM文件
我在显示dicom文件时遇到一些问题。我已经尝试了很多方法将图片显示在相框上,但它所做的只是产生一个错误,即图像是空的。如有任何建议,将不胜感激。我知道图像不是空的,它可以从笔记本电脑访问图像 多谢各位 以下是我用java编写的代码:Java 在屏幕上显示DICOM文件,java,dicom,Java,Dicom,我在显示dicom文件时遇到一些问题。我已经尝试了很多方法将图片显示在相框上,但它所做的只是产生一个错误,即图像是空的。如有任何建议,将不胜感激。我知道图像不是空的,它可以从笔记本电脑访问图像 多谢各位 以下是我用java编写的代码: class Open{ public static void main(String s) throws IOException{ String [] array = s.split("/"); String k = array[0]; k
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);
}
}
你可以用它来做。文档几乎不存在,但是有javadocs
如果您主要希望显示图像,则应该能够使用com.pixelmed.display包中的和来加载和显示图像。如果要解析DICOM属性,可以从中的一种读取方法开始。DICOM不是一种常用的数据格式,因此不要指望它会得到开箱即用的支持。搜索一些管理它们的java库。ImageIO并不声称支持所有可能的图形文件类型。我没看到迪康在里面。您确定它应该与DICOM文件一起工作吗?Offtopic:如果s.length==0,则永远不会执行块中的代码:如果s是空字符串,那么您将在行字符串k=array[0]处获得“索引超出范围”;我认为它应该和ImageIO一起工作…因为我不知道从哪里可以得到dicim库?有人知道在哪里可以买到吗?谢谢你,我在修改代码时忘记了修改。你如何使用imageJ或pixelmed,就像你如何将它集成到eclipse中一样?因为我使用的是oracle的Dicom图像IO插件,但不幸的是没有免费的完整版本。所以我不确定如何使用pixelmed或imageJ。我还发现oracle one非常容易理解和使用。pixelmed或imageJ是否易于使用?如果是,你如何使用它?这就是我一直在使用的:在Eclipse中使用它们就像使用任何其他外部JAR一样,将其添加到“库”选项卡上项目的构建路径中。好的,尝试一下,并在单独的主题中发布您的特定问题。这两个库都在首页有文档链接。好的,谢谢,我知道了,但是pixelmed是用C编码的吗?因为我相信imageJ是用java编写的。