package com.testone;
import java.awt.image.BufferedImage;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Iterator;
import javax.imageio.ImageIO;
import javax.imageio.ImageReadParam;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import org.dcm4che3.data.Attributes;
import org.dcm4che3.imageio.plugins.dcm.DicomImageReadParam;
import org.dcm4che3.util.SafeClose;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class Dcm2jpgIOStreamOutput {
private final ImageReader imageReader = ImageIO.getImageReadersByFormatName("DICOM").next();
private float windowCenter;
private float windowWidth;
private boolean autoWindowing = true;
private int windowIndex;
private int voiLUTIndex;
private boolean preferWindow = true;
private Attributes prState;
private int overlayActivationMask = 0xffff;
private int overlayGrayscaleValue = 0xffff;
private int frame = 1;
public int getFrame() {
return frame;
}
public void setFrame(int frame) {
this.frame = frame;
}
public void setWindowCenter(float windowCenter) {
this.windowCenter = windowCenter;
}
public void setWindowWidth(float windowWidth) {
this.windowWidth = windowWidth;
}
public void setAutoWindowing(boolean autoWindowing) {
this.autoWindowing = autoWindowing;
}
public void setWindowIndex(int windowIndex) {
this.windowIndex = windowIndex;
}
public void setVoiLUTIndex(int voiLUTIndex) {
this.voiLUTIndex = voiLUTIndex;
}
public void setPreferWindow(boolean preferWindow) {
this.preferWindow = preferWindow;
}
public void setPrState(Attributes prState) {
this.prState = prState;
}
public void setOverlayActivationMask(int overlayActivationMask) {
this.overlayActivationMask = overlayActivationMask;
}
public void setOverlayGrayscaleValue(int overlayGrayscaleValue) {
this.overlayGrayscaleValue = overlayGrayscaleValue;
}
public void convert(File src, File dest) throws IOException{
Iterator<ImageReader> iter = ImageIO.getImageReadersByFormatName("DICOM");
ImageReader reader = iter.next();
ImageInputStream iis = ImageIO.createImageInputStream(src);
BufferedImage bi;
OutputStream out = null;
try{
reader.setInput(iis, false);
bi = readImage(iis);
if (bi == null) {
System.out.println("\nError: " + src + " - couldn't read!");
return;
}
out = new BufferedOutputStream(new FileOutputStream(dest));
JPEGImageEncoder enc = JPEGCodec.createJPEGEncoder(out); //这里也可以使用流将图像导出到web应用,用来搭建web版的PACS等。
enc.encode(bi);
}finally{
SafeClose.close(iis);
SafeClose.close(out);
}
}
private ImageReadParam readParam(){
DicomImageReadParam param = (DicomImageReadParam) imageReader.getDefaultReadParam();
param.setWindowCenter(windowCenter);
param.setWindowWidth(windowWidth);
param.setAutoWindowing(autoWindowing);
param.setWindowIndex(windowIndex);
param.setVOILUTIndex(voiLUTIndex);
param.setPreferWindow(preferWindow);
param.setPresentationState(prState);
param.setOverlayActivationMask(overlayActivationMask);
param.setOverlayGrayscaleValue(overlayGrayscaleValue);
return param;
}
private BufferedImage readImage(ImageInputStream iis) throws IOException{
imageReader.setInput(iis);
return imageReader.read(frame -1, readParam());
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
dcm4che 把dcm 解析为jpg 文件
共20个文件
jpg:4个
xml:4个
jar:2个
需积分: 5 15 下载量 77 浏览量
2022-02-12
11:20:22
上传
评论
收藏 372.33MB ZIP 举报
温馨提示
1.默认是32的jdk 2.若果换成64位的 jdk 也是支持的,已测试过,需要从新加载一下 import org.dcm4che3.tool.dcm2jpg.Dcm2Jpg; import org.slf4j.Logger; import org.slf4j.LoggerFactory; 3. dcm2Jpg.setFrame(1); dcm2Jpg.initImageWriter("JPEG",null,null,null,1l); dcm2Jpg.convert(dcmFile,new File(imgpath));
资源详情
资源评论
资源推荐
收起资源包目录
test_one.zip (20个子文件)
test_one
pom.xml 2KB
test_one.iml 81B
target
classes
com
testone
TestOne.class 2KB
Dcm2jpgIOStreamOutput.class 5KB
generated-sources
annotations
src
test
java
main
resources
java
com
testone
TestOne.java 2KB
Dcm2jpgIOStreamOutput.java 4KB
.idea
misc.xml 542B
compiler.xml 541B
workspace.xml 6KB
dcm4che-tool-common-5.19.1.jar 20KB
dcm4che-tool-emf2sf-5.19.1.jar 7KB
dcmjpg1
test
1.dcm 516KB
dcm2.dcm 516KB
111.jpg 59KB
55.jpg 59KB
test.dcm
333.jpg 20KB
44.jpg 59KB
jdk-8u201-windows-x64.exe 207.46MB
dcm4che-3.3.3-bin.zip 11.91MB
jdk-8u291-windows-i586.exe 155.66MB
共 20 条
- 1
debuk
- 粉丝: 4
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 51单片机学习(1)-软件keil下载
- 历届(第1-21届)希望杯数学竞赛初一试题及答案(最新整理).doc全国数学邀请赛(264页资料)
- 水滴.psd
- TokenPocket_V2.1.2_release.apk
- Apache-druid-kafka-rce.yaml
- 基于C#的ASP.NET数据库原理及应用技术课程指导平台的开发
- 基于ROS的智能车轨迹跟踪算法的仿真与设计源码运用PID跟踪算法.zip.zip
- Bug Bounty Tip - i春秋Self-XSS变废为宝的奇思妙想
- 1991-2015年全国初中化学竞赛复赛试题汇编(212页)(24年竞赛复赛真题).docx天原杯
- Apache Flink 未授权访问+远程代码执行.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0