DICOM形式の画像をPNG形式に変換する画像コンバーターに取り組んでいます。
@SuppressWarnings("restriction")
public void dcmconvpng(File file, int indice, File fileOutput)
throws IOException {
ImageIO.scanForPlugins();
Iterator<ImageReader> iter = ImageIO
.getImageReadersByFormatName("DICOM");
ImageReader readers = (ImageReader) iter.next();
DicomImageReadParam param = (DicomImageReadParam) readers
.getDefaultReadParam();
ImageInputStream iis = ImageIO.createImageInputStream(file);
readers.setInput(iis, true);
myPngImage = readers.read(indice, param);
BufferedImage dimg = myPngImage;
File myPngFile = fileOutput;
OutputStream output = new BufferedOutputStream(new FileOutputStream(
myPngFile));
PNGEncodeParam.RGB param2 = new PNGEncodeParam.RGB();
ImageEncoder enc = ImageCodec.createImageEncoder("PNG", output, param2);
enc.encode(dimg);
output.close();
System.out.println("Conversion has been completed!");
}
以前は機能していましたが、ライブラリに jai_imageio-core-1.3.1.jar を追加したため (プロジェクトの他の場所にある OCR システムに必要です)、次のエラーが発生します。
Exception in thread "main" java.lang.ClassCastException: com.sun.media.imageio.stream.RawImageInputStream cannot be cast to com.github.jaiimageio.stream.RawImageInputStream
at com.github.jaiimageio.impl.plugins.raw.RawImageReader.setInput(RawImageReader.java:106)
at javax.imageio.ImageReader.setInput(ImageReader.java:380)
at org.dcm4che2.imageioimpl.plugins.dcm.DicomImageReader.initRawImageReader(DicomImageReader.java:371)
at org.dcm4che2.imageioimpl.plugins.dcm.DicomImageReader.initImageReader(DicomImageReader.java:339)
at org.dcm4che2.imageioimpl.plugins.dcm.DicomImageReader.read(DicomImageReader.java:530)
これは、プロジェクトに複数の imageIO Jar があるためだと確信しています。助けてください。