问题
在dcom文件进行转换成jpg时候报错
Caused by: java.lang.NoClassDefFoundError: com/sun/media/imageio/stream/StreamSegmentMapper
at org.dcm4che2.imageioimpl.plugins.dcm.DicomImageReaderSpi.createReaderInstance(DicomImageReaderSpi.java:146) ~[dcm4che-imageio-2.0.27.jar:?]
at javax.imageio.spi.ImageReaderSpi.createReaderInstance(ImageReaderSpi.java:320) ~[?:1.8.0_25]
at javax.imageio.ImageIO$ImageReaderIterator.next(ImageIO.java:529) ~[?:1.8.0_25]
at javax.imageio.ImageIO$ImageReaderIterator.next(ImageIO.java:513) ~[?:1.8.0_25]
at cn.qzzg.util.Dcm2Jpeg.convert(Dcm2Jpeg.java:78) ~[classes/:?]
引用的pom包
<dependency>
<groupId>dcm4che</groupId>
<artifactId>dcm4che-core</artifactId>
<version>2.0.29</version>
</dependency>
<dependency>
<groupId>dcm4che</groupId>
<artifactId>dcm4che-image</artifactId>
<version>2.0.29</version>
</dependency>
<dependency>
<groupId>dcm4che</groupId>
<artifactId>dcm4che-imageio</artifactId>
<version>2.0.29</version>
</dependency>
DOCM文件转换
public void convert(File src, File dest) throws IOException {
if (dest.getParent() != null) {
File dir = new File(dest.getParent());
if (!dir.exists()) {
dir.mkdirs();
}
}
Iterator<ImageReader> iter = ImageIO.getImageReadersByFormatName("DICOM");
ImageReader reader = iter.next();
DicomImageReadParam param = (DicomImageReadParam) reader.getDefaultReadParam();
param.setWindowCenter(center);
param.setWindowWidth(width);
param.setVoiLutFunction(vlutFct);
param.setPresentationState(prState);
param.setPValue2Gray(pval2gray);
param.setAutoWindowing(autoWindowing);
ImageInputStream iis = ImageIO.createImageInputStream(src);
BufferedImage bi;
OutputStream out = null;
try {
reader.setInput(iis, false);
bi = reader.read(frame - 1, param);
if (bi == null) {
System.out.println("\nError: " + src + " - couldn't read!");
return;
}
out = new BufferedOutputStream(new FileOutputStream(dest));
JPEGImageEncoder enc = JPEGCodec.createJPEGEncoder(out);
enc.encode(bi);
} finally {
CloseUtils.safeClose(iis);
CloseUtils.safeClose(out);
}
}
解决
jdk换成 32位,tomcat换成32位即可
Tomcat32位地址:https://download.csdn.net/download/u010520146/10663989
JDK 32位地址:https://download.csdn.net/download/u010520146/10664001