打开 DICOM zip文件
打开 DICOM zip文件
项目地址:
CodeChina kissDicomViewer
详细介绍:
CSDN 一个简单的 DICOM 浏览器
小蚂蚁有一个功能,导入文件时支持DICOM zip
文件,一般DICOM
文件数量都比较多,大家相互拷贝的时候常常压缩成zip
文件。小蚂蚁可以直接打开zip
文件(读取里边所有的DICOM
文件并显示)。小蚂蚁那么高的效率应该是自己实现zip
文件的解压,在内存里直接判断是否DICOM
文件,是的话直接拷贝出来。
我能想到的自己可以实现的办法就是:如果载入文件后缀是.zip
我就解压到本地一个目录,遍历里边所有文件,依次用DCMTK
打开。把需要的影像加载到内存后删除本地解压缩的文件。
解压办法
本来用的unzip
,现在kissDicomViewer想做成夸平台的。虽然有现成的QZipWriter
和Qzipreader
。但是实际使用过才发现QZipWriter
勉强能用,Qzipreader
就是个坑。老老实实的把quazip
加进来吧。用JlCompress::extractDir
来解压。
class UnzipDicomFile : public QThread {Q_OBJECTpublic:explicit UnzipDicomFile() {}virtual ~UnzipDicomFile() override {}virtual void run() override;void SetPath(const QString &path);private:QString path_;
};//-------------------------------------------------------
void UnzipDicomFile::run() {Kiss::FileUtil::DirRemove("./ZipCache");Kiss::FileUtil::DirMake("./ZipCache/");JlCompress::extractDir(this->path_, "./ZipCache/");
}//-------------------------------------------------------
void UnzipDicomFile::SetPath(const QString &path) {this->path_ = path;
}
使用
保留之前的打开文件逻辑,如果当前返回的只有一个文件并且后缀是.zip
则使用UnzipDicomFile
先解压到本地"./ZipCache"
。让后读取这个文件夹。全部载入后删除本地"./ZipCache"
。
void ThumbnailBarWidget::appendImagePaths(const QStringList &paths, bool clear_old) {emit Signal_ImageLoadBegin();if(1 == paths.size() && paths.first().right(4) == ".zip") {QPointer<UnzipDicomFile> script_recoery_;script_recoery_ = new UnzipDicomFile();connect(script_recoery_, &UnzipDicomFile::finished,this, [&] {appendImagePaths(QStringList() << "./ZipCache", true);});connect(script_recoery_, &UnzipDicomFile::finished,script_recoery_, &UnzipDicomFile::deleteLater);script_recoery_->SetPath(paths.first());script_recoery_->start();return;}
/*原先打开文件方法
*/Kiss::FileUtil::DirRemove("./ZipCache");emit Signal_ImageLoadFinished();
打开 DICOM zip文件相关推荐
- ubuntu里打开rar,zip文件方法
方法一: rar 和 7zip 是两种源于 windows 的压缩格式, linux 对它们的支持并不像 tar 或者 gzip 那样理所当然,因此,当你在 ubuntu 下无法避开这两种压缩格式的文 ...
- php生成zip文件,使用PHP处理zip压缩文件之ZipArchive
PHP5.2以后,强化了对压缩文件的处理,不仅对zip算法,还包括rar算法.gzip算法等都有了相应的支持. 今天,我来和大家分享一下用PHP处理zip文件.我们用到的是ZipArchive类,如果 ...
- python怎样压缩和解压缩ZIP文件
python怎样压缩和解压缩ZIP文件(转) 有时我们需要在 Python 中使用 zip 文件,而在1.6版中,Python 就已经提供了 zipfile 模块可以进行这样的操作.不过 Python ...
- pythonzip压缩字符串_Python压缩与解压缩ZIP文件的实现方法
这篇文章主要介绍了Python实现压缩和解压缩ZIP文件的方法,结合具体实例形式分析了Python操作zip文件压缩与解压缩的常用操作技巧,需要的朋友可以参考下 本文实例讲述了Python实现压缩和解 ...
- 心得 ~ 使用 zlib库 解压缩 zip文件
最近在完成一个项目,需要用到C++语言读取一个zip文件内指定文件的内容.在网上查阅了不少资料,针对过程中遇到的问题,自己也研究了一下,现将方法心得记录下来. 关于解压文件的方法,根据网上的资料,大概 ...
- python解压zip文件_python怎样压缩和解压缩ZIP文件(转)
有时我们需要在 Python 中使用 zip 文件,而在1.6版中,Python 就已经提供了 zipfile 模块可以进行这样的操作.不过 Python 中的 zipfile 模块不能处理多卷的情况 ...
- java读取zip文件损坏_java – 如何检查生成的zip文件是否损坏?
我们有一段代码在我们的系统上生成一个zip文件.一切都可以,但是有时这个ZIP文件被FilZip或WinZip打开时被认为是损坏的. 所以这里是我的问题:如果生成的zip文件已损坏,我们如何可以编程检 ...
- python批量解压文件,python批量解压zip文件的方法
python怎样压缩和解压缩ZIP文件 说明 python使用zipfile模块来压缩和解压zip文件 才能最好于孤独中培养:品格最好在世界的汹涌波涛中形成. 代码 import os,os.path ...
- java zipfile用法_Java使用ZipFile类实现Zip文件解压
java.util.zip.ZipFile类用于从 ZIP 文件读取条目. 即从给定的ZIP压缩文件中获取所有文件的信息,如:文件的名称.是否为目录等信息.可以使用这个类来实现将zip文件进行解压操作 ...
最新文章
- ViewPager 实现界面加载不同的数据
- html百度地图跳动标注,trajectory.html
- Qt之QSlider
- 详解Linux 五种IO模型
- 按自己喜欢的方式过一生?
- PHP中text里数字相加,excel文字数字如何混合求和
- 帆软报表-打印sql日志设置
- Android快速开发框架ZBLibrary源码分享
- 程序员考试范围(考试大纲)
- 证件照尺寸修改、图片背景换色、照片大小压缩…几个在线图片编辑、处理网站推荐
- angularjs姓名转拼音js
- pdca实施的流程图_PDCA实战案例详解:PDCA的 4个阶段 8个步骤及应用详解
- R语言学习(二)数据分析数据探索
- keil4和烧录软件的基本使用
- matlab可以算二重积分么,matlab 二重积分函数
- BI解决方案分享:地产BI数据分析系统的建设
- 图像编码解码(I P B帧),数码相机成像原理
- 计算机本地硬盘满了,本地磁盘C盘满了怎么清理?
- html相同数据合并单元格合并单元格,Javascript合并表格中具有相同内容单元格示例...
- 阿里云oss文件上传(简单上传、服务端签名后直传)