【问题标题】:Get MIME type from dicom files in java从java中的dicom文件获取MIME类型
【发布时间】:2014-08-06 17:01:02
【问题描述】:

我已经尝试了以下所有方法:

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLConnection;
import java.nio.file.Files;

public class mimeDicom {
    public static void main(String[] argvs) throws IOException{
        String path = "Image003.dcm";
        String[] mime = new String[3];
        File file = new File(path);
        mime[0] = Files.probeContentType(file.toPath());
        mime[1] = URLConnection.guessContentTypeFromName(file.getName());
        InputStream is = new BufferedInputStream(new FileInputStream(file));
        mime[2] = URLConnection.guessContentTypeFromStream(is);
        for(String m: mime)
            System.out.println("mime: " + m);
    }
}

但结果仍然是:mime: null 对于上述每种尝试的方法,我真的很想知道文件是否为 DICOM,因为有时它们没有扩展名或有不同的扩展名。

如何从路径中知道文件是否为 DICOM?

注意:这不是How to accurately determine mime data from a file? 的重复,因为excellent list of magic numbers 不包括 DICOM 文件,而 apache tika 将application/octet-stream 作为返回值,它并没有真正将其识别为图像并且它没有用作为NIfTI 文件(以及其他文件)从 Tika 获得完全相同的 MIME。

【问题讨论】:

标签: java mime-types dicom


【解决方案1】:

要确定一个文件是否为 Dicom,最好的办法是自己解析文件,看看它是否在文件偏移 128 处包含魔术字节“DICM”。

前 128 个字节通常为 0,但可以包含任何内容。

【讨论】:

    猜你喜欢
    • 2015-07-04
    • 2010-09-30
    • 2016-05-19
    • 2018-12-01
    • 2010-11-05
    • 2014-05-19
    相关资源
    最近更新 更多