首页 > 编程语言 >java dcm文件转图片

java dcm文件转图片

时间:2022-12-08 18:58:30浏览次数:79  
标签:dcm java File org import dcm4che 图片

1.情景展示

如何将dicom文件转图片

2.具体分析

所需jar包

<!--dcm文件转图片-->
<!-- https://mvnrepository.com/artifact/org.dcm4che/dcm4che-core -->
<dependency>
    <groupId>org.dcm4che</groupId>
    <artifactId>dcm4che-core</artifactId>
    <version>5.27.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.dcm4che/dcm4che-imageio -->
<dependency>
    <groupId>org.dcm4che</groupId>
    <artifactId>dcm4che-imageio</artifactId>
    <version>5.27.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.dcm4che/dcm4che-image -->
<dependency>
    <groupId>org.dcm4che</groupId>
    <artifactId>dcm4che-image</artifactId>
    <version>5.27.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-dcm2jpg -->
<dependency>
    <groupId>org.dcm4che.tool</groupId>
    <artifactId>dcm4che-tool-dcm2jpg</artifactId>
    <version>5.23.3</version>
</dependency>

3.解决方案

代码实现

import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import org.dcm4che3.util.SafeClose;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
private static ImageReader imageReader = ImageIO.getImageReadersByFormatName("DICOM").next();

/**
 * 将DCM文件转成图片格式
 * @param src dcm文件
 * @param target 图片文件
 */
public static void toImage(File src, File target) {
    ImageInputStream iis = null;
    BufferedImage bi;
    OutputStream out = null;
    try{
        iis = ImageIO.createImageInputStream(src);
        imageReader.setInput(iis, false);
        bi = imageReader.read(0);
        // 获取图片后缀名
        String formatName = FileUtils.getFileFormat(target);
        //out = new BufferedOutputStream(new FileOutputStream(dest));
        //JPEGImageEncoder enc = JPEGCodec.createJPEGEncoder(out);  //这里也可以使用流将图像导出到web应用,用来搭建web版的PACS等。
        //enc.encode(bi);
        ImageIO.write(bi, formatName, target);
    } catch (IOException e) {
        e.printStackTrace();
        log.error(e.getMessage());
    } finally{// 关闭流
        SafeClose.close(iis);
        SafeClose.close(out);
    }

}

/**
 * dcm文件转图片
 * @param dcmPath dcm文件所在全路径
 *                C:\Users\Marydon\Desktop\16641003.dcm
 * @param imgPath 图片文件所在全路径
 *                C:\Users\Marydon\Desktop\666.png
 */
public static void toImage(String dcmPath, String imgPath) {
    toImage(new File(dcmPath), new File(imgPath));
}

测试

public static void main(String[] args) {
    toImage("C:\\Users\\Marydon\\Desktop\\16641003.dcm", "C:\\Users\\Marydon\\Desktop\\777.jpg");
}

 

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

标签:dcm,java,File,org,import,dcm4che,图片
From: https://www.cnblogs.com/Marydon20170307/p/16966968.html

相关文章

  • 完全参考java8的开发文档写的文件读写
    publicstaticvoidmain(String[]args)throwsIOException{Stringpath="D:\\project\\luotuo-server\\src\\test\\java\\com\\manageSystem\\project......
  • Java8 遍历List 使用stream().parallel()并发安全
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......
  • Java中String类型判空
    根据之前的学习,我们已经知道在Java中String类型是不可以通过==直接判等的,而应该通过equals()那么在Java中String类型要如何判空呢? 在最开始,我以为判空是这样进行的——......
  • 多图片生成PDF(二)HTML生成PDF
    HTML生成PDF一、html生成pdf需要引入jar包在pom.xml中引入如下jar包<dependency><groupId>com.itextpdf</groupId><artifactId>html2pdf</artifactId><v......
  • 多图片生成PDF(一)多图片生成HTML
    多图片生成HTML一、准备前提1、准备一个html模板<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=d......
  • Java web区分两个按钮
    在.jsp文件中有时候会出现两个按钮的情况在最开始的时候是打算通过两个hidden对两个按钮进行区分于是我写了这样的语句  然而事实却是,这样的语句无法分辨提交的......
  • JavaScript高级
    javascript高级JavaScript进阶-第1天学习作用域、变量提升、闭包等语言特征,加深对JavaScript的理解,掌握变量赋值、函数声明的简洁语法,降低代码的冗余度。理解作......
  • JavaScript获取某个时间到n天前时间组成的数组
    代码getLastNDay(time,n,type=''){letarry=[]for(leti=0;i<n;i++){letdate=newDate(time)date.setDate(date.getDate()......
  • JavaScript获取某个时间到n个月前时间组成的时间数组
    代码//time是date格式时间或字符串,n表示那个月,type是返回结果链接符getLastNMon(time,n,type=''){letdate=newDate(time)letyear=date.getFullYe......
  • 图片的拖动
      <div   @mousedown="imgMove"   id="imgRef"   ref="imgRef"   class="full-heightfull-widthimg-style"   style="position:......