php解析dcm,DICOM入门(三)——解析DCM文件

talk is cheap show me the code —— Linus Torvalds

本章将结合开源项目IMBRA讲解如何解析一个DCM文件

446bd4c9f2fc?appinstall=0

dcm文件结构.jpg

文件开头会有128字节的导言,这部分数据没有内容。接着是4字节DICOM文件标识,存储这"DICM"。然后紧接着就是dicom数据数据元素了

446bd4c9f2fc?appinstall=0

打开一个DCM文件.jpg

try

{

pStream->read(oldDicomSignature, 8);

}

catch(StreamEOFError&)

{

IMEBRA_THROW(CodecWrongFormatError, "detected a wrong format");

}

// Skip the first 128 bytes (8 already skipped)

///

pStream->seekForward(120);

// Read the DICOM signature (DICM)

///

std::uint8_t dicomSignature[4];

pStream->read(dicomSignature, 4);

// Check the DICM signature

///

const char* checkSignature="DICM";

if(::memcmp(dicomSignature, checkSignature, 4) != 0)

{

bFailed=true;

}

旧版本的DCM文件会在开头8个字节验证签名,在读完128字节后,读取4个字节验证DICOM标识。

pStream->read((std::uint8_t*)&tagId, sizeof(tagId));

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值