打开DCM图像,C++


支持DCM格式图像打开,窗宽窗位调节,同时支持JPEG格式图像打开。
资源截图
代码片段和文件信息
// DIB.cpp: implementation of the CDIB class.
//
//////////////////////////////////////////////////////////////////////

#include “stdafx.h“
#include “EXE.h“
#include “DIB.h“
#include “math.h“

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CDIB::CDIB()
{
m_pDib=NULL;
pdate =NULL;
m_pDibBits=NULL;
name =NULL;
m_Palette=NULL;
hospital=NULL;
add =NULL;
id =NULL;

}

CDIB::~CDIB()
{
if (m_pDib!=NULL)
{ delete []m_pDib;
}
if (pdate!= NULL)
{
delete []pdate;
}

if (m_pDibBits!=NULL) {
delete []m_pDibBits;
}

if (name!=NULL) delete []name;
if (hospital!=NULL) delete []hospital;
if (add!=NULL) delete []add;
if(id!=NULL)  delete []id;
  if (m_Palette!=NULL) delete []m_Palette;

}

bool CDIB::LoadFile( const char *FileName )
{
CFile File;
File.Open(FileNameCFile::modeRead|CFile::shareDenyRead);
DWORD dwsize= File.GetLength();
pdate= new unsigned char[dwsize];
File.Read(pdatedwsize);
if (pdate[128]!=‘D‘||pdate[129]!=‘I‘||pdate[130]!=‘C‘||pdate[131]!=‘M‘)
{
AfxMessageBox(“这不是一个的DICOM文件“);
delete []pdate;
return FALSE;
}


//姓名
int ij;
long int datesize =0;
for (i=128;i {
if (pdate[i]==0x10&&pdate[i+1]==0x00&&pdate[i+2]==0x10&&pdate[i+3]==0x00)
{
datesize= long int(pdate[i+4]+pdate[i+5]*pow(2561)+pdate[i+6]*pow(2562)+pdate[i+7]*pow(2563));
break;
}
}
name =new  char [datesize +1];
for (j=0;j {
name[j]=pdate[i+8+j];
}
name[j]=‘‘;
//出生日期
datesize =0;
for (i=128;i {
if (pdate[i]==0x10&&pdate[i+1]==0x00&&pdate[i+2]==0x30&&pdate[i+3]==0x00)
{
datesize= long int(pdate[i+4]+pdate[i+5]*pow(2561)+pdate[i+6]*pow(2562)+pdate[i+7]*pow(2563));
break;
}
}
birthday =new  char [datesize +1];
for (j=0;j {
birthday[j]=pdate[i+8+j];
}
birthday[j]=‘‘;


//病人编号
datesize =0;
for (i=128;i {
if (pdate[i]==0x10&&pdate[i+1]==0x00&&pdate[i+2]==0x20&&pdate[i+3]==0x00)
{
datesize= long int(pdate[i+4]+pdate[i+5]*pow(2561)+pdate[i+6]*pow(2562)+pdate[i+7]*pow(2563));
break;
}
}
id =new  char [datesize +1];
for (j=0;j {
id[j]=pdate[i+8+j];
}
id[j]=‘‘;






//医院
datesize =0;
for (i=128;i {
if (pdate[i]==0x08&&pdate[i+1]==0x00&&pdate[i+2]==0x80&&pdate[i+3]==0x00)
{
datesize= long int(pdate[i+4]+pdate[i+5]*pow(2561)+pdate[i+6]*pow(2562)+pdate[i+7]*pow(2563));
break;
}
}
hospital =new  char [datesize +1];
for (j=0;j {
hospital[j]=pdate[i+8+j];
}
hospital[j]=‘‘;

//医院地址
datesize =0;
for (i=128;i {
if (pdate

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      26524  2012-08-15 13:21  DCM.exeDebugDIB.obj

     文件     131132  2012-08-15 13:21  DCM.exeDebugEXE.exe

     文件     328108  2012-08-15 13:21  DCM.exeDebugEXE.ilk

     文件      22888  2012-08-15 13:21  DCM.exeDebugEXE.obj

     文件    5492384  2012-08-15 13:21  DCM.exeDebugEXE.pch

     文件     345088  2012-08-15 13:21  DCM.exeDebugEXE.pdb

     文件       7336  2012-08-15 13:21  DCM.exeDebugEXE.res

     文件      17599  2012-08-15 13:21  DCM.exeDebugEXEDoc.obj

     文件      21854  2012-08-15 13:21  DCM.exeDebugEXEView.obj

     文件      20006  2012-08-15 13:21  DCM.exeDebugMainFrm.obj

     文件     105725  2012-08-15 13:21  DCM.exeDebugStdAfx.obj

     文件     205824  2012-08-15 13:32  DCM.exeDebugvc60.idb

     文件     364544  2012-08-15 13:21  DCM.exeDebugvc60.pdb

     文件       9741  2010-06-06 18:30  DCM.exeDIB.cpp

     文件       1059  2010-06-06 18:28  DCM.exeDIB.h

     文件      44080  2010-06-06 18:24  DCM.exeEXE.APS

     文件       2367  2010-06-06 18:30  DCM.exeEXE.clw

     文件       4155  2010-03-23 15:54  DCM.exeEXE.cpp

     文件       4610  2010-03-23 16:54  DCM.exeEXE.dsp

     文件        529  2010-03-23 15:54  DCM.exeEXE.dsw

     文件       1323  2010-03-23 15:54  DCM.exeEXE.h

     文件      91136  2010-06-06 18:30  DCM.exeEXE.ncb

     文件      49664  2010-06-06 18:30  DCM.exeEXE.opt

     文件       1133  2010-06-06 18:30  DCM.exeEXE.plg

     文件      11919  2010-06-06 18:24  DCM.exeEXE.rc

     文件       2056  2010-03-23 16:35  DCM.exeEXEDoc.cpp

     文件       1564  2010-06-06 01:32  DCM.exeEXEDoc.h

     文件       3129  2010-06-06 18:17  DCM.exeEXEView.cpp

     文件       1784  2010-05-23 11:03  DCM.exeEXEView.h

     文件       2504  2010-03-23 15:54  DCM.exeMainFrm.cpp

............此处省略15个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)