我正在开发一个图像转换器,它将 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 Jars,请提供任何帮助。