以下のコードのようにimageioを使用してjpeg2000でDICOM画像を変換しようとしています。同じ手順がOracleのドキュメントで説明されていますが、機能しません。何が間違っているのかわかりません。Java Advanced Image I/OライブラリがJREにインストールされます。
使用:ImageIO.getReaderFormatNames()
そしてImageIO.getWriterFormatNames()
、DICOMとJPEG2000がサポートされていることを確認できます!
エラーはスローされませんが、ファイルの書き込みに時間がかかりすぎ、出力ファイルが破損しています。
前もって感謝します...
public void convert2JPEG(File sourceFileName) throws IOException{
Iterator<ImageReader> iter = ImageIO.getImageReadersByFormatName("DICOM");
ImageReader reader = iter.next();
if(reader == null) {
log.error("Could not locate any Readers for the DICOM format image.");
return;
}
File sourceFile = new File (sourceFileName);
ImageInputStream iis = ImageIO.createImageInputStream(sourceFile);
BufferedImage bi;
try{
bi = ImageIO.read(iis);
File outputFile = new File("outputFileName");
String format = "jpeg 2000";
ImageIO.write(bi, format, outputFile);
} catch(Exception e){
log.info("ERROR: " + e);
}finally {
iis.close();
}
}