イメージをロードし、Netbeans プラットフォーム Java で dicom イメージを保存するアプリケーションを開発しています。Jfilechooser を使用して dicom イメージのみをロードしたいのですが、アプリケーションを開発しましたが、Dicom イメージのみをロードできませんでした。それが足りない?どのjarファイルをアップロードする必要がありますか....?plsは私とあなたの意見を共有します..事前に感謝します.ここに私がjavaappsで開発したコードを追加します...
package opner;
import com.sun.media.jai.widget.DisplayJAI;
import java.awt.*;
import java.awt.event.*;
import java.util.Properties;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import java.util.Properties;
import java.io.*;
import java.net.*;
import java.awt.BorderLayout;
import java.io.*;
import javax.imageio.*;
import java.awt.image.RenderedImage;
import java.awt.image.renderable.ParameterBlock;
import java.util.Iterator;
import javax.imageio.stream.FileImageInputStream;
import javax.imageio.stream.FileImageOutputStream;
import javax.media.jai.*;
import javax.swing.*;
public class Opner
{
public static void main(String args[])
{
RenderedImage image = null;
RenderedOp result = null;
try
{
FileImageInputStream stream = new FileImageInputStream(new File("E:/MAGIX/demo1.dcm"));
Iterator iter =ImageIO.getImageReaders(stream);
ImageReader reader = (ImageReader)iter.next();
reader.setInput(stream);
image = reader.readAsRenderedImage(0,reader.getDefaultReadParam());
double scaleFactor = 0.5;
ParameterBlock params = new ParameterBlock();
params.addSource(image);
params.add(scaleFactor);
//x scale factor
params.add(scaleFactor);
//y scale factor
result = JAI.create("SubsampleAverage", params);
Iterator writerIter =ImageIO.getImageWritersByFormatName("dcm");
ImageWriter writer = (ImageWriter)writerIter.next();
FileImageOutputStream os = new FileImageOutputStream(new File("E:/MAGIX/demo1.dcm"));
writer.setOutput(os);
writer.write(result);
}
catch(IOException e)
{
e.printStackTrace();
}
DisplayJAI d = new DisplayJAI();
d.set(result);
JScrollPane jsp = new JScrollPane();
jsp.setViewportView(d);
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLayout(new BorderLayout());
f.add(jsp, BorderLayout.CENTER);
f.pack();
f.setVisible(true);
}
}